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-height
und 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 auto
Höhe erhalten. Und genau das tun Webkit und alle anderen Browser.
Zweitens die Problemumgehung, die ich gefunden habe:
Wenn ich mein Containerelement display:table
mit height:inherit
ihm genau die gleiche Art und Weise wirkt , als ob ich es geben würde , min-height
von 100%. Und - was noch wichtiger ist - wenn ich das untergeordnete Element darauf setze, display:table-cell
erbt 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:flex
undflex-direction:column
und geben Sie dem Kindflex:1
.