Cómo centrar una capa que tiene posición absoluta

02/05/2015 Tweet
Cómo centrar una capa que tiene posición absoluta

Cuantas veces hemos querido centrar una capa que estaba con posición absoluta y nos hemos liado añadiendo estilos innecesarios y sin conseguir el objetivo. Esto es, por ejemplo, cuando tenemos un lightbox o popup que queremos mostrar en centro de la pantalla. De la siguiente manera lo haremos de una forma sencilla y no falla!

Ejemplo

Vamos a simular que queremos mostrar un popup en el centro de la pantalla con un mensaje de error:

Error

Se ha producido un error. Vuelva a intentarlo más tarde

Para centrar la capa horizontalmente necesitamos aplicar los siguientes estilos:

.layer{
left:50%; margin-left:-140px; /*hay que palicar un margen izquierdo negativo cuyo valor sea la mitad del ancho de la capa, en nuestro caso es 280px*/
}

El resultado sería el siguiente:

Error

Se ha producido un error. Vuelva a intentarlo más tarde

Si además queremos centrarlo verticalmente, aplicaremos los siguientes estilos:

.layer{
top:50%; margin-top:-70px; /*hay que aplicar un margen superior negativo cuyo valor sea la mitad del alto de la capa, en nuestro caso es 140px*/
}

El resultado es el siguiente:

Error

Se ha producido un error. Vuelva a intentarlo más tarde

Como requisito para que este método funcione es que debemos conocer el ancho y el alto de la capa a centrar.

Compatibilidad en navegadores

Chrome Firefox Safari Opera Explorer
>IE7 IE8 IE9<
Sí Sí Sí Sí Sí Sí Sí

Demo