Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Problemas de Superpocision de DIV

Estas en el tema de Problemas de Superpocision de DIV en el foro de CSS en Foros del Web. Buenas amigos tengo un problema, estoy tratando de crear una capa que me bloquee toda la pantalla para una aplicacion en las propiedades css use ...
  #1 (permalink)  
Antiguo 30/04/2013, 09:44
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Pregunta Problemas de Superpocision de DIV

Buenas amigos tengo un problema, estoy tratando de crear una capa que me bloquee toda la pantalla para una aplicacion en las propiedades css use esto:

Código CSS:
Ver original
  1. .pantalla{
  2.     display: block;
  3.     position: absolute;
  4.     top: 0;
  5.     left: 0;
  6.     z-index: 200;
  7.     width: 100%;
  8.     height: 100%;
  9.     background: url(../imagenes/transparent.png);
  10. }

y en la pagina me muestra el resultado bien (aparece un cuadro verde superpuesto) pero si bajo puedo ver el resto de la pagina (es como si la propiedad height no estuviera abarcando todo) como puedo solucionar esto?

dejo dicho que en mi sitio trabajo con paginas anidadas (con includes en php).
  #2 (permalink)  
Antiguo 30/04/2013, 10:15
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Problemas de Superpocision de DIV

Cuando posicionas un elemento de forma absoluta y no hay ningún elemento de contención —léase cualquier elemento ancestral con una posición diferente a estática— ese elemento será el elemento raíz. Y aunque pueda parecer que ese elemento es html, no lo es. Es viewport. Y el tamaño de viewport es algo así como el "espacio visible del navegador".

Entonces estás definiendo que la altura cubra el total de ese viewport, que, obviamente, termina cuando se acaba ese espacio visible.

Sólo tendrías que colocarle a html, ya que este crece según el contenido —tiene height: auto por defecto— una posición relativa y funcionará como esperas ya que entonces la posición absoluta hará referencia no al elemento raíz sino al elemento html.

Código CSS:
Ver original
  1. html {
  2.   position: relative;
  3. }

También podrías ponérselo a body, pero para el caso, lo mismo da.
  #3 (permalink)  
Antiguo 30/04/2013, 11:15
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Problemas de Superpocision de DIV

Pues ciertamente es verdad ningun elemento anterior a esa capa tiene posicion relative, y probando tu ejemplo funciona solo que la capa queda un poco por debajo del html (habria que colocarle un TOP con valor negativo para que quede justo donde comienza el html) pero bien otra cosa que encontre y me funciono fue hacer:

Código CSS:
Ver original
  1. position:fixed;

ahora pregunto la capa anterior (que tiene el contenido) tiene una extensa información y obliga que aparezcan las scroll bar como hago para que esta nueva capa (la que e superpuesto) elimine dichos scrolls?

porque probando con:

Código CSS:
Ver original
  1. overflow: hidden!important;

no mola... :(
  #4 (permalink)  
Antiguo 30/04/2013, 11:31
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Problemas de Superpocision de DIV

Tendrías que usar JavaScript. Así pensándolo por encima con CSS sería posible según el caso específico y usando :target.
  #5 (permalink)  
Antiguo 30/04/2013, 18:04
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Problemas de Superpocision de DIV

Lo hice con php y java, con el php cree una variable que tome el valor de 1 al cumplirse una condicion... y si esta variiable tenia el valor de 1 aplicaba el style overflow=hidden

Código PHP:
Ver original
  1. if ($tarde==1){
  2. echo'
  3. <script type="text/javascript">
  4.     document.getElementsByTagName("html")[0].style.overflow = "hidden";
  5.     document.getElementById("fondopantalla").style.display = "block";
  6.     document.getElementById("pantalla").style.display = "block";
  7. </script>
  8. ';
  9. }
  10. ?>

Etiquetas: imagenes, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.