Este es un error del kit web (chrome / safari), los hijos de padres con altura mínima no pueden heredar la propiedad de altura: https://bugs.webkit.org/show_bug.cgi?id=26559
Aparentemente, Firefox también se ve afectado (no se puede probar en IE en este momento)
Posible solución:
- agregar posición: relativa a #contención
- agregar posición: absoluto a # contenedor-sombra-izquierda
El error no se muestra cuando el elemento interno tiene un posicionamiento absoluto.
Ver http://jsfiddle.net/xrebB/
Editar el 10 de abril de 2014
Como actualmente estoy trabajando en un proyecto para el que realmente necesito contenedores principales min-height
y elementos secundarios que hereden la altura del contenedor, investigué un poco más.
Primero: ya no estoy tan seguro de si el comportamiento actual del navegador es realmente un error. Las especificaciones CSS2.1 dicen:
El porcentaje se calcula con respecto a la altura del bloque que contiene la caja generada. Si la altura del bloque contenedor no se especifica explícitamente (es decir, depende de la altura del contenido), y este elemento no está en una posición absoluta, el valor se calcula como 'auto'.
Si pongo una altura mínima en mi contenedor, no estoy especificando explícitamente su altura, por lo que mi elemento debería tener una auto
altura. Y eso es exactamente lo que hace Webkit, y todos los demás navegadores.
En segundo lugar, la solución que encontré:
Si configuro mi elemento contenedor display:table
con height:inherit
él, actúa exactamente de la misma manera que si le diera un min-height
100%. Y, lo que es más importante, si configuro el elemento hijo display:table-cell
heredará perfectamente la altura del elemento contenedor, ya sea 100% o más.
CSS completo:
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
El marcado:
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
Ver http://jsfiddle.net/xrebB/54/ .
display:flex
yflex-direction:column
y dar al niñoflex:1
.