2009-04-29 10 views
77

De forma predeterminada, la altura de un DIV viene determinada por su contenido.¿Cómo elimino el estilo de altura de un DIV usando jQuery?

Pero, puedo reemplazar y que establece explícitamente una altura con jQuery:

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

¿Cómo puedo revertir eso? Quiero eliminar el estilo de altura y hacer que regrese a su altura automática/natural?

+1

No puedo hacer que esto funcione tampoco. Parece que después de establecer la altura del div a algo específico (como 300px o lo que sea), no puede establecer la altura de nuevo en automático. Podría ser un error jQuery. –

Respuesta

17

tal vez algo como

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

Eso anulará cualquier regla de CSS existente que deba aplicarse, lo que puede ser un problema. –

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

no creo que esto funcione para un estilo de altura CSS que está incrustado dentro de un atributo de estilo ... – topwik

+1

Sí, esto ** no ** funciona. –

+0

En todo caso, querría quitarAttr ("estilo") – mindwire22

13

Para restablecer la altura del div, sólo tratar

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

+0

En realidad , esto funciona Ver respuesta arriba. – nonrectangular

+0

Este es un duplicado de la respuesta de @norectangular, que es anterior a esta edición. –

89

para quitar la altura:

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

como Jo hn señalado, ajuste de altura para auto:

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

(comprobado con jQuery 1,4)

+0

Puedo confirmar que esto funciona (al menos jQuery 1.4.2). –

+5

Dio tres soluciones, puedo confirmar que el ajuste de altura para "" funciona, no sé sobre las demás. –

+1

En jQuery 1.9 usando '' pero usando 'null' no. –

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

me gusta usar esto, porque es simétrica con la forma en que explícitamente .height utilizado (val) para configurarlo en primer lugar, y funciona en todos los navegadores.

+1

Esto fuerza la altura a la altura automática, anulando cualquier CSS existente reglas. Eso puede estar bien en algunas instancias específicas, pero en general podría causar problemas. –

+0

@BennettMcElwee En realidad estoy luchando con el problema que describes ahora. Entonces +1 por eso. –

14

puede probar esto:

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

que debería ser correcto, ya que este elimina el valor de estilo css(), es útil para cambiar el tamaño con js :) Saludos, gracias –

0

sólo para añadir a las respuestas aquí, yo estaba usando la altura como una función con dos opciones o bien especificar la altura si es menor que la altura de la ventana, o un conjunto de nuevo a automático

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

necesitaba para centrar el contenido verticalmente si era menor que la altura de la ventana o de lo contrario dejar que desplazarse de forma natural así que esto es lo que me ocurrió con

0

Gracias chicos por mostrar todos esos ejemplos. Estuve todavía teniendo problemas con mi página de contacto en pantallas de medios pequeños, como por debajo de 480px después de probar sus ejemplos. Bootstrap siguió insertando height: auto.

Elemento Inspector/Devtools mostrará en la altura:

element.style { 

} 

En mi caso, yo estaba viendo: section#contact.contact-container | 303 x 743 en la ventana del navegador.

Así que la siguiente larga duración trabaja para eliminar el problema:.

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

2

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

Cuestiones relacionadas