Este é um bug relatado pelo webkit (chrome / safari). Filhos de pais com altura mínima não podem herdar a propriedade height: https://bugs.webkit.org/show_bug.cgi?id=26559
Aparentemente, o Firefox também é afetado (não é possível testar no IE no momento)
Solução possível:
- adicionar posição: relativo a #containment
- adicionar posição: absoluto para # contenção-sombra-esquerda
O erro não aparece quando o elemento interno tem posicionamento absoluto.
Veja http://jsfiddle.net/xrebB/
Editar em 10 de abril de 2014
Como atualmente estou trabalhando em um projeto para o qual realmente preciso de contêineres pai min-height
e elementos filho que herdam a altura do contêiner, fiz mais algumas pesquisas.
Primeiro: não tenho mais tanta certeza se o comportamento atual do navegador é realmente um bug. As especificações do CSS2.1 dizem:
A porcentagem é calculada em relação à altura do bloco contendo a caixa gerada. Se a altura do bloco que contém não for especificada explicitamente (isto é, depende da altura do conteúdo) e esse elemento não estiver absolutamente posicionado, o valor será computado para 'automático'.
Se eu colocar uma altura mínima no meu contêiner, não especificarei explicitamente sua altura; portanto, meu elemento deve ter uma auto
altura. E é exatamente isso que o Webkit - e todos os outros navegadores - fazem.
Segundo, a solução alternativa que encontrei:
Se eu definir meu elemento contêiner display:table
com height:inherit
ele, ele age exatamente da mesma maneira que se eu desse min-height
100%. E - mais importante - se eu definir o elemento filho, display:table-cell
ele herdará perfeitamente a altura do elemento do contêiner - seja 100% ou mais.
CSS completo:
html, body {
height: 100%;
margin: 0;
}
#container {
background: green;
display: table;
height: inherit;
width: 100%;
}
#content {
background: red;
display: table-cell;
}
A marcação:
<div id="container">
<div id="content">
<p>content</p>
</div>
</div>
Veja http://jsfiddle.net/xrebB/54/ .
display:flex
eflex-direction:column
e dar à criançaflex:1
.