14

Centrando en el centro

Publicado por Elias el dia 14 Nov 2007 - Guardado en 257 Views CSS, Tutoriales, Diseño Web 257 Views

¿Qué?. Ahora lo entenderemos todos. Supongamos que necesitamos centran un div o imagen en el centro mismo de la pantalla (por ejemplo el logotipo de una web en la pantalla de presentación para el sitio) y no damos con la solución.CSS Tricks nos la da. Lo más lógico es crear una clase para esa imagen o div que queremos centrar (si es un div tenemos que darle un ancho y un alto fijo), proporcionando un porcentaje superior del 50% e izquierdo de otro 50%:

CSS:
  1. .centered {
  2. position: fixed;
  3. top: 50%;
  4. left: 50%;
  5. }

Pero esto como muchos habrán deducido no nos vale, porque lo que hace es centrar la esquina superior izquierda de la imagen o div en el centro de la pantalla, pero no el centro de la imagen en el centro de la pantalla.

not-centered-csstrick.gif

*Imagen de CSS Trick

La solución es simple, añadiremos un margen superior negativo dándole como medida la mitad de la altura que tenga la imagen o div y otro margen izquierdo negativo dándole como medida la mitad de la anchura de la imagen o div:

CSS:
  1. .centered {
  2. position: fixed;
  3. top: 50%;
  4. left: 50%;
  5. margin-top: -50px;
  6. margin-left: -100px;
  7. }

 

centered-csstrick.gif

*Imagen de CSS Trick

¿Solucionado? No, porque IE6 interpreta como le da la gana, así que tendremos que añadir a todo lo anterior un hack en nuestra hoja de estilos:

CSS:
  1. *html .centered {
  2. position:absolute
  3. }

Ahora sí, ya tenemos la imagen o div centrado en el centro de la pantalla para IE6, IE7 y FireFox.

ACTUALIZACIÓN: Todo lo dicho anteriormente sigue siendo válido pero actualizamos para explicar como eliminar el hack (anieto2k nos lo comentó en los comentarios de esta misma entrada pero se perdieron debido a la mudanza del blog), solo tendremos que cambiar el valor de "position" poniéndolo en "absolute". Así quedaría el código:

CSS:
  1. .centered {
  2. position: absolute;
  3. top: 50%;
  4. left: 50%;
  5. }

Para el segundo ejemplo sería lo mismo, cambiar la propiedad de position por absolute. Con esto evitamos el uso de ningún tipo de hack.

Autoría original del tutorial: CSS Tricks Títuolo original: Quick CSS Trick: How To Center an Object Exactly In The Center

Escrito por redactor invitado: Elías Notario
Blog: diarioTHC

delicious, digg, barrapunto, meneame, digg , technorati , stumble it!
comentarios
  1. [...] Centrando en el centro 20 11 2007 [...]

  2. sergiomas - Gravatar

    sergiomas

    14 - 11 - 2007

    Permalink

    Me parece que si sustituyes el position: fixed por absolute, no te hará falta el hack.

    Saludos

  3. Nikko - Gravatar

    Nikko

    14 - 11 - 2007

    Permalink

    sergiomas: tal cual...hace días tenemos pensado actualizar el post..y agregar algunos trucos mas a esto..pero estábamos con la migración del sitio e inclusive perdimos en la migración 13 comentarios en este post referente a eso…Anieto2k había comentado lo exactamente lo mismo. Supongo q en estos días actualizaremos el post y agregaremos algunas cosas mas con relación a este tema..saludos

  4. Elías - Gravatar

    Elías

    14 - 11 - 2007

    Permalink

    En cuanto tenga un rato lo actualizo que como dice nikko ya lo había hablado con él.

    Un saludo!.

  5. Navdeep - Gravatar

    Navdeep

    14 - 11 - 2007

    Permalink

  6. Nikko - Gravatar

    Nikko

    14 - 11 - 2007

    Permalink

    Navdeep :
    thenks the link. The post which published it is also very interesting and more secure serve to broaden this issue. haaaaaaaaaaa, your recent themes have been beautiful. Congratulations. Greeting ^_^

  7. DK - Gravatar

    DK

    14 - 11 - 2007

    Permalink

    Enserio, millones de gracias.. jajaj soy novato en css pero personas con información tan clara como la que nos proporcionas, nos da tanta alegría y animo!!!
    muchas gracias!!

  8. [...] este post lo saque del blog de Xyberneticos y realmente me encuentro muy agradecido!! lo pongo en mi blog, porque temas tan buenos como este [...]



Nombre: (Necesario)

E-mail: (Necesario)

Website:

Escribe tu comentario: