Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Centrar verticalmente un section

Estas en el tema de Centrar verticalmente un section en el foro de CSS en Foros del Web. Hola amigos, Desde hace ratos estoy buscando una solución al siguiente problema: Resulta que tengo un login con una estructura similar a lo siguiente: @import ...
  #1 (permalink)  
Antiguo 28/06/2013, 14:49
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Centrar verticalmente un section

Hola amigos,

Desde hace ratos estoy buscando una solución al siguiente problema:

Resulta que tengo un login con una estructura similar a lo siguiente:
Código HTML:
Ver original
  1.      <header>
  2.             ...
  3.      </header>
  4.      <section>
  5.             ...
  6.      </section>
  7.      <footer>
  8.             ...
  9.      <footer>

dentro del section tengo el formulario, pero lo que necesito es que ese section se encuentre alineado verticalmente y no encuentro cómo.

Ya probé colocar dentro otro section y a este último darle un display:table-cell junto con el vertical-align: middle mientras que al primero un display:table, pero nada.

Me da la impresión como que el body no se ajusta al tamaño de la ventana.

También he probado con darle un margin: 11% 0, al section principal pero eso no lo deja alineado al centro del documento.

¿Cómo podría resolver esto?.

Gracias desde ya.

Saludos
  #2 (permalink)  
Antiguo 28/06/2013, 14:54
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: Centrar verticalmente un section

¿El problema es la alineación vertical o que section no toma el tamaño adecuado?
  #3 (permalink)  
Antiguo 28/06/2013, 15:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Centrar verticalmente un section

Hola pzin,

Gracias por la pronta respuesta, la verdad no lo sé. El footer lo tengo con position:fixed y bottom: 0, por lo que lo tengo pegado prácticamente al borde inferior de a la ventana, así es como me han dado el diseño.

Solamente el secction no encuentro cómo ubicarlo centrado verticalmente y no me explico el porqué.

Saludos
  #4 (permalink)  
Antiguo 28/06/2013, 16:20
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: Centrar verticalmente un section

Es que a priori con table-cell te debería de funcionar:

Código CSS:
Ver original
  1. section {
  2.   display: table-cell;
  3.   vertical-align: middle;
  4. }

Pero claro, si section no va desde el header hasta el footer, entonces el contenido estará centrado, pero no tiene la altura indicada.

Si no, aparte de eso, prueba con algo como:

Código CSS:
Ver original
  1. html, body {
  2.   height: 100%;
  3. }
  4.  
  5. header {
  6.   height: 100px;
  7. }
  8.  
  9. footer {
  10.   height: 50px;
  11. }
  12.  
  13. section {
  14.   height: calc(100% - 150px); /* header + footer */
  15. }
  #5 (permalink)  
Antiguo 29/06/2013, 11:36
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Centrar verticalmente un section

Gracias por la ayuda pzin,

Probé con ambas opciones y no me funcionó, luego hice lo siguiente:

Código CSS:
Ver original
  1. section{
  2.      margin: 11% 0;
  3. }

Quedó mas o menos, pero de último encontré esta solución: http://crea-t.net/blog/centrar-conte...na-pagina-html.

Al final me queda algo así:

Código CSS:
Ver original
  1. section{       
  2.     margin-top: -11.5em;    /* la mitad del alto del objeto a centrat */
  3.     margin-left: -15em;     /* la mitad del ancho del objeto a centrar */
  4.     position: absolute;
  5.     top: 50%;
  6.     left: 50%;
  7.     width: 30em;            /* ancho del objeto a centrar */
  8.     height: 23em;           /* alto del objeto a centrar */
  9. }

Prefiero trabajar com em y no con px por lo de los múltiples dispositivos.

No se si sea la mejor solución pero de momento al redimencionar la ventana del navegador va muy bien.

Gracias por el apoyo
  #6 (permalink)  
Antiguo 29/06/2013, 11:49
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: Centrar verticalmente un section

No es buena idea trabajar con posiciones absolutas. Y la combinación posición absoluta + márgenes negativos suele ser mala también. Cuando la altura y la anchura sea pequeña, section va a salir de la ventana y quedará oculto.

Intenta con algo así:

Código HTML:
Ver original 

Código CSS:
Ver original
  1. html, body {
  2.   height: 100%;
  3. }
  4. header {
  5.   height: 100px;
  6. }
  7. footer {
  8.   height: 50px;
  9. }
  10. section {
  11.   display: table;
  12.   width: 100%;
  13.   height: calc(100% - 150px);
  14. }
  15. section > div {
  16.   display: table-cell;
  17.   vertical-align: middle;
  18. }

Funcionar funciona: http://jsfiddle.net/EAMR4
  #7 (permalink)  
Antiguo 01/07/2013, 08:26
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Centrar verticalmente un section

Excelente!!!

Ha funcionado, limpié mi código HTML y ajusté tu CSS al mío y funciona.

Gracias por la ayuda pzin.

Saludos

Etiquetas: alinear, verticalmente
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 15:48.