Portanto, tenho um problema que considero bastante comum, mas ainda não encontrei uma boa solução para ele. Quero fazer um div de sobreposição cobrir toda a página ... NÃO apenas a janela de visualização. Eu não entendo porque isso é tão difícil de fazer ... Eu tentei definir o corpo, as alturas do html para 100% etc, mas não está funcionando. Aqui está o que tenho até agora:
<html>
<head>
<style type="text/css">
.OverLay { position: absolute; z-index: 3; opacity: 0.5; filter: alpha(opacity = 50); top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; background-color: Black; color: White;}
body { height: 100%; }
html { height: 100%; }
</style>
</head>
<body>
<div style="height: 100%; width: 100%; position: relative;">
<div style="height: 100px; width: 300px; background-color: Red;">
</div>
<div style="height: 230px; width: 9000px; background-color: Green;">
</div>
<div style="height: 900px; width: 200px; background-color: Blue;"></div>
<div class="OverLay">TestTest!</div>
</div>
</body>
</html>
Eu também estaria aberto a uma solução em JavaScript, se houver, mas prefiro usar um CSS simples.
Respostas:
A janela de visualização é tudo o que importa, mas você provavelmente deseja que todo o site permaneça escuro mesmo durante a rolagem. Para isso, você deseja usar em
position:fixed
vez deposition:absolute
. Fixo mantém o elemento estático na tela conforme você rola, dando a impressão de que todo o corpo está escurecido.Exemplo: http://jsbin.com/okabo3/edit
fonte
<select>
elemento no iOS, ele move toda a janela de visualização e basicamente quebra tudo. elementos fixos se movem, coisas que não deveriam rolarfonte
Em primeiro lugar, acho que você entendeu mal o que é a janela de visualização. A janela de visualização é a área que um navegador usa para renderizar páginas da web, e você não pode de forma alguma construir seus sites da web para sobrescrever essa área de forma alguma.
Em segundo lugar, parece que o motivo pelo qual sua div de sobreposição não cobrirá toda a janela de visualização é porque você deve remover todas as margens de BODY e HTML.
Tente adicionar isso no topo da sua folha de estilo - ele redefine todas as margens e preenchimentos em todos os elementos. Facilita o desenvolvimento posterior:
Edit: Acabei de entender melhor sua pergunta.
Position: fixed;
provavelmente funcionará para você, como Jonathan Sampson escreveu.fonte
*{}
e você verá muito mais :)Tive alguns problemas, pois não queria CORRIGIR a sobreposição, pois queria que as informações dentro da sobreposição pudessem ser roladas sobre o texto. Eu usei:
É claro que a div no meio precisa de algum conteúdo e provavelmente um fundo cinza transparente, mas tenho certeza de que você entendeu!
fonte
Eu olhei para a resposta de Nate Barr acima, da qual você pareceu gostar. Não parece muito diferente do mais simples
fonte