2009-04-29 18 views
77

Per impostazione predefinita, l'altezza di un DIV è determinata dal suo contenuto.Come rimuovo lo stile altezza da un DIV usando jQuery?

Ma, sovrascrivo che e impostare in modo esplicito un'altezza con jQuery:

$('div#someDiv').height(someNumberOfPixels); 

Come posso invertire tale? Voglio rimuovere lo stile di altezza e farlo tornare all'altezza automatica/naturale?

+1

Non riesco a farlo funzionare. Sembra che dopo aver impostato l'altezza del div su qualcosa di specifico (come 300 px o qualsiasi altra cosa), non è possibile impostare l'altezza su Auto. Potrebbe essere un bug jQuery. –

risposta

17

forse qualcosa di simile

$('div#someDiv').css("height", "auto"); 
+1

Ciò sostituirà qualsiasi regola CSS esistente da applicare, il che potrebbe essere un problema. –

-6
$('div#someDiv').removeAttr("height"); 
+0

Non penso che funzionerà per uno stile di altezza css incorporato in un attributo di stile ... – topwik

+1

Sì, questo ** non funziona **. –

+0

Se vuoi rimuovereAttr ("stile") – mindwire22

13

Per ripristinare l'altezza del div, basta provare

$("#someDiv").height('auto');

+0

questo funziona. Vedi la risposta sopra. – nonrectangular

+0

Questo è un duplicato della risposta di @ non rettangolare, che precede questa modifica. –

89

per rimuovere l'altezza:

$('div#someDiv').css('height', ''); 
$('div#someDiv').css('height', null); 

come Jo hn sottolineato, impostare l'altezza a auto:

$('div#someDiv').css('height', 'auto'); 

(verificato con jQuery 1,4)

+0

Posso confermare questo funziona (jQuery 1.4.2 almeno). –

+5

Hai dato tre soluzioni, posso confermare che l'altezza di impostazione per "" funziona, non so degli altri. –

+1

In jQuery 1.9 utilizzando '' ma l'uso di 'null' no. –

19
$('div#someDiv').height('auto'); 

Mi piace usare questo, perché è simmetrica come esplicitamente utilizzato .height (val) per impostarlo in primo luogo e funziona su tutti i browser.

+1

Ciò impone all'altezza di essere l'altezza automatica, ignorando qualsiasi CSS esistente regole. Potrebbe essere OK in alcuni casi specifici, ma in generale potrebbe causare problemi. –

+0

@BennettMcElwee In realtà sto lottando con il problema che hai descritto ora. Quindi +1 per quello. –

14

si può provare questo:

$('div#someDiv').height(''); 
+1

che dovrebbe essere corretto come questo rimuove il valore di stile css(), è utile per ridimensionare con js :) Ciao, grazie –

0

solo per aggiungere alle risposte qui, stavo usando l'altezza in funzione con due opzioni specificare l'altezza se è inferiore alla altezza della finestra, oppure impostare su Auto

var windowHeight = $(window).height(); 
$('div#someDiv').height(function(){ 
    if ($(this).height() < windowHeight) 
     return windowHeight; 
    return 'auto'; 
}); 

avevo bisogno per centrare il contenuto in verticale se era più piccola della altezza della finestra oppure lasciarlo scorrere naturalmente quindi questo è quello che mi è venuta

0

Grazie a tutti per aver mostrato tutti questi esempi. Sono stato ancora avendo problemi con la mia pagina di contatto su schermi di piccoli media come sotto 480px dopo aver provato i tuoi esempi. Bootstrap continuava a inserire height: auto.

Element Inspector/Devtools mostrerà l'altezza in:

element.style { 

} 

Nel mio caso mi è stato vedere: section#contact.contact-container | 303 x 743 nella finestra del browser.

Così il seguente full-length lavora per eliminare il problema:.

$('section#contact.contact-container').height('');

2

$ ('div # someDiv') css ('height', '');

Problemi correlati