Dies ist ein gemeldeter Webkit-Fehler (Chrome / Safari). Kinder von Eltern mit Mindestgröße können die Eigenschaft height nicht erben: https://bugs.webkit.org/show_bug.cgi?id=26559
Anscheinend ist auch Firefox betroffen (kann derzeit nicht im IE getestet werden)
Mögliche Problemumgehung:
- Position hinzufügen: relativ zu #containment
- Position hinzufügen: absolut zu # Containment-Shadow-Left
Der Fehler wird nicht angezeigt, wenn das innere Element absolut positioniert ist.
Siehe http://jsfiddle.net/xrebB/
Bearbeiten am 10. April 2014
Da ich derzeit an einem Projekt arbeite, für das ich wirklich übergeordnete Container min-heightund untergeordnete Elemente benötige , die die Höhe des Containers erben, habe ich weitere Nachforschungen angestellt.
Erstens: Ich bin mir nicht mehr so sicher, ob das aktuelle Browserverhalten wirklich ein Fehler ist. CSS2.1-Spezifikationen sagen:
Der Prozentsatz wird in Bezug auf die Höhe des Blocks der generierten Box berechnet. Wenn die Höhe des enthaltenden Blocks nicht explizit angegeben wird (dh von der Höhe des Inhalts abhängt) und dieses Element nicht absolut positioniert ist, wird der Wert zu 'auto' berechnet.
Wenn ich meinem Container eine Mindesthöhe hinzufüge, gebe ich seine Höhe nicht explizit an - daher sollte mein Element eine autoHöhe erhalten. Und genau das tun Webkit und alle anderen Browser.
Zweitens die Problemumgehung, die ich gefunden habe:
Wenn ich mein Containerelement display:tablemit height:inheritihm genau die gleiche Art und Weise wirkt , als ob ich es geben würde , min-heightvon 100%. Und - was noch wichtiger ist - wenn ich das untergeordnete Element darauf setze, display:table-cellerbt es die Höhe des Containerelements perfekt - ob es 100% oder mehr ist.
Vollständiges CSS:
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
Das Markup:
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
Siehe http://jsfiddle.net/xrebB/54/ .
display:flexundflex-direction:columnund geben Sie dem Kindflex:1.