Aqui está a solução que finalmente encontrei ao usar uma div como um contêiner para um plano de fundo dinâmico.
- Remova
z-indexpara usos não em segundo plano.
- Remova
leftou rightpara uma coluna de altura total.
- Remova
topou bottompara uma linha de largura total.
EDIT 1: O CSS abaixo foi editado porque não foi exibido corretamente no FF e no Chrome. movido position:relativepara estar no HTML e definir o corpo para em height:100%vez de min-height:100%.
EDIT 2: Adicionados comentários extras ao CSS. Adicionadas mais algumas instruções acima.
O CSS:
html{
min-height:100%;/* make sure it is at least as tall as the viewport */
position:relative;
}
body{
height:100%; /* force the BODY element to match the height of the HTML element */
}
#cloud-container{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
overflow:hidden;
z-index:-1; /* Remove this line if it's not going to be a background! */
}
O html:
<!doctype html>
<html>
<body>
<div id="cloud-container"></div>
</body>
</html>
Por quê?
html{min-height:100%;position:relative;}
Sem isso, o DIV do contêiner na nuvem é removido do contexto de layout do HTML. position: relativegarante que o DIV permaneça dentro da caixa HTML quando é desenhado, de modo que bottom:0se refira à parte inferior da caixa HTML. Você também pode usar height:100%o contêiner na nuvem, pois agora se refere à altura da tag HTML e não à porta de visualização.