Comunidad de diseño web y desarrollo en internet online

Centrar un div horizontal y verticalmente con CSS

Sabemos que es muy sencillo centrar verticalmente una imagen, o incluso toda la nuestra página, en el navegador, haciendo uso de margin:0 auto (si no sabes de qué estamos hablando es mejor que veas antes este tutorial; ¿pero qué pasa si nuestro site es una película flash o queremos colocar una imagen anunciando mantenimiento o la fecha de inauguración de nuestro site y queremos que esté centrado horizontal y verticalmente?

Bien, este es un sencillo tip que nos permitirá hacerlo sin importar el tamaño del navegador, pero con una salvedad, sólo funciona con elementos de tamaño fijo. Dicho esto, comencemos.

Lo primero que haremos es insertar el elemento que queremos centrar, una imagen por ejemplo, y colocarle un identificador.

Código :

<img src="img/central.jpg" id="central" height=200px width=200px/>


Hecho esto, colocamos en nuestro css:

Código :

#central{
    position:absolute;
    top:50%;
    left: 50%;
    margin-top: -100px;
    margin-left: -100px;
}


¡Y eso es todo! Expliquemos el código:

Código :

position:absolute;

Al colocar la propiedad position en absolute hacemos que se rija por las coordenadas absolutas de la página, sin importar si se encuentra o no en algún contenedor.

Código :

top:50%;
left:50%;

Empuja nuestro elemento colocando su esquina superior izquierda en el centro de la página.

Código :

margin-top: -100px;
margin-left: -100px;

Colocamos un margen negativo al tope (la mitad del alto) y a la izquierda (la mitad del ancho), para colocarlo al centro del elemento. ¡Y ya! :lol:

Espero que les sea útil. Un tip sencillo pero con un resultado elegante. ;)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate