Ich habe ein Container-Element, das ich ändern muss, wenn der Inhalt ändert. Es enthält 2 absolut positionierte Divs, die beide die Höhe ändern können. Wenn ich nicht die Höhe des Containers angeben, dann verschwindet alles nach dem Container unter dem Inhalt.Wie wird die Größe eines Container-DIVs auf die Gesamthöhe seiner untergeordneten Elemente geändert?
Im Moment habe ich folgendes tue, aber ich würde gerne eine weniger mühsame Alternative zu finden:
(Behälter position: relative, #main und #sidebar ist position: absolute, wird der Inhalt von # Sidebar haben keine Positionierung angegeben)
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()));
};
Ich bevorzuge es, dies in CSS zu tun, anstatt zusätzlichen Inhalt der Seite nur für die Zwecke des Zurücksetzens hinzuzufügen. –
Entschuldigung - ich war nicht klar genug und wurde unterbrochen, bevor ich das klären konnte. Ich habe weitere Informationen zur Positionierung hinzugefügt. – Ken