Así que tengo un problema que creo que es bastante común, pero todavía tengo que encontrar una buena solución. Quiero hacer que un div de superposición cubra la página ENTERA ... NO solo la ventana gráfica. No entiendo por qué esto es tan difícil de hacer ... He intentado establecer body, html heights al 100%, etc. pero eso no funciona. Esto es lo que tengo hasta ahora:
<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>
También estaría abierto a una solución en JavaScript si existe una, pero preferiría usar un CSS simple.
Respuestas:
La ventana gráfica es lo único que importa, pero es probable que desee que todo el sitio web permanezca oscurecido incluso mientras se desplaza. Para ello, desea utilizar en
position:fixed
lugar deposition:absolute
. Fixed mantendrá el elemento estático en la pantalla a medida que se desplaza, dando la impresión de que todo el cuerpo está oscurecido.Ejemplo: http://jsbin.com/okabo3/edit
fuente
<select>
elemento en iOS, mueve toda la ventana gráfica y básicamente rompe todo. elementos fijos que se mueven, cosas que no deberían desplazarse, etc.fuente
En primer lugar, creo que ha entendido mal qué es la ventana gráfica. La ventana gráfica es el área que utiliza un navegador para representar páginas web, y de ninguna manera puede crear sus sitios web para anular esta área de ninguna manera.
En segundo lugar, parece que la razón por la que su overlay-div no cubrirá toda la ventana gráfica es porque tiene que eliminar todos los márgenes en BODY y HTML.
Intente agregar esto en la parte superior de su hoja de estilo; restablece todos los márgenes y rellenos en todos los elementos. Facilita el desarrollo posterior:
Editar: acabo de entender mejor tu pregunta.
Position: fixed;
probablemente funcionará para usted, como ha escrito Jonathan Sampson.fuente
*{}
y verá mucho más :)Tuve bastantes problemas porque no quería ARREGLAR la superposición en su lugar, ya que quería que la información dentro de la superposición se pudiera desplazar por el texto. Solía:
Por supuesto, el div en el medio necesita algo de contenido y probablemente un fondo gris transparente, ¡pero estoy seguro de que entiendes la esencia!
fuente
Miré la respuesta de Nate Barr arriba, que pareció gustarle. No parece muy diferente de lo más simple.
fuente