Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: soru13 en 23 Febrero 2013, 18:50 pm



Título: Problema al maquetar con 2 Divs
Publicado por: soru13 en 23 Febrero 2013, 18:50 pm
Hola, llevo varias horas dándole vueltas a un problema que tengo al maquetar mi web, y la verdad, que me estoy volviendo loco.

El archivo Html contiene lo siguiente:

Código:
<div id="contenedor">    
      
      <div id="medio">
a
      </div>

</div>

Y el CSS lo siguiente:

Código:
#contenedor{
height:auto;
width:100%;
}

#medio{
height:auto;
padding:0;
width:990px;
margin:auto;
background-color:white;
        border-right: 1px solid rgb(204, 204, 204);
        border-left: 1px solid rgb(204, 204, 204);
border-bottom: 1px solid rgb(204, 204, 204);

}

Entonces, el problema está que cuando mi DIV con ID "medio" coje automáticamente ( al cargar contenido con PHP ) o poniéndole yo manualmente en el CSS una altura mayor a 900px, éste se desplaza unos 5 o 10 px a la izquierda, entonces a la hora de navegar, como en la principal el div es mayor a 900px y en las demás no, deja un efecto al navegar que parece que el diseño se mueve de un lado a otro, bastante feo.

El caso es que llevo bastante tiempo dándole vueltas y no se me ocurre nada, aver si me podéis ayudar.

Os dejo unas capturas de lo que hace:

Con 900px o menos: http://oi50.tinypic.com/rh4zcz.jpg

Con 1000px o más: http://oi46.tinypic.com/20p5xtw.jpg

Un saludo y gracias!


Título: Re: Problema al maquetar con 2 Divs
Publicado por: #!drvy en 23 Febrero 2013, 19:45 pm
Si te fijas, cuando lo tienes con 900px o menos, el navegador no añade scrollbars. En cambio, con mas de 1000px si. Por eso se te mueve.

2 soluciones.

Activar el scrollbar vertical por defecto
Código
  1. html {overflow-y: scroll;}

O darle un position:absolute a #medio y centrarlo con porcentajes.

Código
  1. #medio {
  2.   padding:0;
  3.   width:990px;
  4.   background-color:white;
  5.   border-right: 1px solid rgb(204, 204, 204);
  6.   border-left: 1px solid rgb(204, 204, 204);
  7.   border-bottom: 1px solid rgb(204, 204, 204);
  8.   /* Por defecto el navegador ya aplica height:auto. Asi que no lo uses :P */
  9.   height:900px;
  10.   /* Posicion absoluta */
  11.   position:absolute;
  12.   /* Mover 50% a la izquierda */
  13.   left:50%;
  14.   /* Le quitamos la mitad del ancho del div a la izquierda. Así se centra. */
  15.   margin-left:-495px;
  16. }

Saludos


Título: Re: Problema al maquetar con 2 Divs
Publicado por: soru13 en 23 Febrero 2013, 20:11 pm
Muchas gracias, poniendo el div como absoluto y centrándolo lo solucioné. La verdad que no llegué a probarlo porque pensaba que con la posición relativa debería hacerlo bien.

Un saludo!