Tengo un elemento contenedor que necesito cambiar el tamaño a medida que cambia su contenido. Contiene dos divs absolutamente posicionados que pueden cambiar la altura. Si no especifico la altura del contenedor, cualquier cosa después del contenedor desaparecerá debajo de los contenidos.¿Cómo cambiar el tamaño de un contenedor div a la altura total de sus hijos?
En el momento que estoy haciendo lo siguiente pero estaría contento de encontrar una alternativa menos laboriosa:
(contenedor tiene position: relative, #main y #sidebar son position: absolute, el contenido de # barra lateral no tienen posicionamiento especificado)
css:
div#mapcontainer { position:relative; width:100%; height: 600px; }
div#main { position:absolute; top: 0; left: 10px; width: 500px; height: 400px; }
div#sidebar { position:absolute; top:10px; right:10px; width: 155px; height: 405px;}
html:
<div id="container">
<div id="main">variable height content here</div>
<div id="sidebar">
<div id="foo">...</div>
<div id="bar">....</div>
...
</div>
<div>
JS:
fixHeights = function() {
var children_height = 0;
$('#sidebar'). children().each(function(){children_height += $(this).height();});
$('#container').height(Math.max(children_height, $('#main').height()));
};
Prefiero hacer esto en CSS en lugar de agregar contenido adicional a la página solo para restablecer. –
Lo siento, no fui lo suficientemente claro y me interrumpieron antes de poder aclarar. He agregado más información sobre el posicionamiento – Ken