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-index
para usos não em segundo plano.
- Remova
left
ou right
para uma coluna de altura total.
- Remova
top
ou bottom
para 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:relative
para 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: relative
garante que o DIV permaneça dentro da caixa HTML quando é desenhado, de modo que bottom:0
se 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.
html
elemento. Por que é que?height
está dizendo 'você é tão alto; nem mais nem menos. O que significa que será a altura da janela de exibição. Queremos que ele seja pelo menos tão alto quanto a janela de exibição ou mais alto.min-height
faz isso muito bem.<html>
posicionamento na viewport e o posicionamento na viewport eram duas coisas distintas. Obrigado!Com o HTML5, a maneira mais fácil é simplesmente fazer
height: 100vh
. Onde 'vh' significa altura da janela de exibição da janela do navegador. Responsivo ao redimensionamento do navegador e dos dispositivos móveis.fonte
vw
.Eu tive um problema semelhante e a solução foi fazer isso:
Eu queria uma div centrada na página com altura de 100% da altura da página, então minha solução total foi:
Pode ser necessário fazer com que um elemento pai (ou simplesmente 'corpo') tenha
position: relative;
fonte
cloud-container
?Você pode trapacear usando Faux Columns ou pode usar alguns truques CSS
fonte
É simples usando uma tabela:
Quando o DIV foi introduzido, as pessoas tinham tanto medo das mesas que o pobre DIV se tornou o martelo metafórico.
fonte
Use a posição absoluta. Observe que não é assim que geralmente estamos acostumados a usar a posição absoluta, o que requer a disposição manual das coisas ou a exibição de diálogos flutuantes. Isso será esticado automaticamente quando você redimensionar a janela ou o conteúdo. Eu acredito que isso requer o modo de padrões, mas funcionará no IE6 e acima.
Apenas substitua a div pelo id 'thecontent' pelo seu conteúdo (a altura especificada existe apenas para ilustração, você não precisa especificar uma altura no conteúdo real.
A maneira como isso funciona é que a div externa atua como um ponto de referência para a barra de navegação. A div externa é esticada pelo conteúdo da div 'content'. A barra de navegação usa posicionamento absoluto para se esticar até a altura do pai. Para o alinhamento horizontal, fazemos com que a div de conteúdo se desloque pela mesma largura da barra de navegação.
Isso é muito mais fácil com o modelo de caixa flexível CSS3, mas ainda não está disponível no IE e possui algumas de suas próprias peculiaridades.
fonte
Encontrei o mesmo problema que você. Eu queria fazer um
DIV
como pano de fundo, porque, porque é fácil manipular div através de javascript. Enfim, três coisas que fiz no css para essa div.CSS:
fonte
Se você está direcionando navegadores mais modernos, a vida pode ser muito simples. experimentar:
se você precisar em 50% da página, substitua 100 por 50.
fonte
Quero cobrir toda a página da web antes de solicitar um pop-up modal. Eu tentei muitos métodos usando CSS e Javascript, mas nenhum deles ajuda até descobrir a solução a seguir. Funciona para mim, espero que ajude você também.
Boa sorte ;-)
fonte
fonte
fonte
Simples, basta envolvê-lo em uma div ...
O HTML:
O CSS:
fonte