2010-01-07 26 views
8

Tengo un div con dos divs anidados. El primer niño tiene una altura variable dependiendo de su contenido, quiero que la segunda altura de divs sea lo que sobra del padre.¿Cómo puedo hacer que un DIV ocupe el resto de la altura de un contenedor div?

<div style="height:500px;"> 
    <div>Some Content Here</div> 
    <div>This div needs to take up the rest of the space of its parent</div> 
</div> 

¿Cómo puedo hacer esto?

Gracias, ~ ck en San Diego

+3

Igual que http://stackoverflow.com/questions/1818467/how-to-apply-100-height-to-div? – Upperstage

+0

Olvídate de soluciones Java Script o cortes con diseño de la mesa [enter Descripción enlace aquí] [1] [1]: http://stackoverflow.com/a/26558049/869661 – Kryszal

Respuesta

8

Se hace uso de JavaScript. Veo que estás usando jQuery, por lo que este debe trabajar:

Dale un documento de identidad a su padre div:

<div style="height:500px;" id="parent"> 
    <div>Some Content Here</div> 
    <div>This div needs to take up the rest of the space of its parent</div> 
</div> 

Luego, en jQuery:

$('div#parent div:last').each(function() { 
    var p = $(this).parent(); 
    $(this).height(p.height() - ($(this).offset().top - p.offset().top)); 
}); 
+1

caso omiso de mi comentario, como yo was wrong = x – Erik

2

Creo que tengo una forma correcta de hacerlo sin Javascript:

<div style="height:500px; background:pink; overflow: hidden"> 
    <div style="background: yellow">stuff</div> 
    <div style="height: 100%; background: red;">This div needs to take up the rest of the space</div> 
</div> 

la clave ser "overflow: hidden" en el div principal, como la creación de la altura del segundo div al 100% lo hace 500 píxeles de alto.

+4

pero si el contenido del divler (red) div es demasiado grande (es decir, más de 500px - altura del div rojo) se cortará. Esto podría ser feo, dependiendo del contenido del div rojo. – AUSteve

Cuestiones relacionadas