CSS Layout - Alineación horizontal y vertical


Alineación centrada horizontal y vertical


Centrar elementos

Para centrar horizontalmente un elemento (como <div>), puedes usarmargin: auto;。

El ancho establecido en el elemento evitará que se desborde hacia el borde del contenedor.

El elemento se centra especificando un ancho y distribuyendo equitativamente los márgenes externos vacíos a ambos lados:

El elemento div está centrado


Ejemplo

.center { margin: auto; width: 50%; border: 3px solid green; padding: 10px; }

Pruébalo »

Nota:Si no se establecewidthla propiedad (o se establece en 100%), la alineación centrada no funcionará.


Alinear texto al centro

Si es solo para centrar texto dentro de un elemento, puedes usartext-align: center;

la alineación del texto al centro


Ejemplo

.center { text-align: center; border: 3px solid green; }

Pruébalo »

Consejo:Para más ejemplos de alineación de texto, consultaCSS Textocapítulo.


Centrar imágenes

Para centrar una imagen, puedes usarmargin: auto;y ponerla en unbloqueelemento <div>:

Paris

Ejemplo

img { display: block; margin: auto; width: 40%; }

Pruébalo »

Alinear izquierda y derecha - usando posicionamiento

Podemos usarposition: absolute;la propiedad para alinear elementos:

Ejemplo -- Lo que se aprende no es solo tecnología, sino también sueños!!!


Ejemplo

.right { position: absolute; right: 0px; width: 300px; border: 3px solid #2167AD; padding: 10px; }

Pruébalo »

Nota:Los elementos con posicionamiento absoluto se eliminan del flujo normal y pueden superponerse a otros elementos.

Consejo:Cuando usespositionpara alinear elementos, normalmente<body>el elemento se establecemarginypadding. Esto puede evitar diferencias visibles en diferentes navegadores.

Al usar la propiedad position, IE8 y versiones anteriores tienen un problema. Si el elemento contenedor (en nuestro caso, <div class="container">) tiene un ancho específico y se omite la declaración !DOCTYPE, IE8 y versiones anteriores añadirán un margen de 17px en el lado derecho. Esto parece ser el espacio reservado para la barra de desplazamiento. Al usar la propiedad position, siempre establece la declaración !DOCTYPE:


Ejemplo

body { margin: 0; padding: 0; } .container { position: relative; width: 100%; } .right { position: absolute; right: 0px; width: 300px; background-color: #b0e0e6; }

Pruébalo »

Alinear izquierda y derecha - usando float

También podemos usarfloatla propiedad para alinear elementos:

Ejemplo

.right { float: right; width: 300px; border: 3px solid #2167AD; padding: 10px; }

Pruébalo »

Cuando se alinean elementos de esta manera, es una buena idea predefinir el margen y el padding del elemento <body>. Esto puede evitar diferencias visibles en diferentes navegadores.

Nota: Si la altura del elemento hijo es mayor que la del elemento padre, y el elemento hijo tiene float establecido, entonces el elemento hijo se desbordará; en este momento puedes usar "clearfix(clear float) para resolver este problema.

Podemos agregar overflow: auto; al elemento padre para resolver el problema del desbordamiento del elemento hijo:

Ejemplo

.clearfix { overflow: auto; }

Pruébalo »

Al usar la propiedad float, IE8 y versiones anteriores tienen un problema. Si se omite la declaración !DOCTYPE, IE8 y versiones anteriores añadirán un margen de 17px en el lado derecho. Esto parece ser el espacio reservado para la barra de desplazamiento. Al usar la propiedad float, siempre establece la declaración !DOCTYPE:

Ejemplo

body { margin: 0; padding: 0; } .right { float: right; width: 300px; background-color: #b0e0e6; }

Pruébalo »

Alineación vertical centrada - usando padding

En CSS hay muchas formas de lograr la alineación vertical centrada. Una forma sencilla es usar padding en la parte superior e inferior.padding:

Estoy centrado verticalmente.


Ejemplo

.center { padding: 70px 0; border: 3px solid green; }

Pruébalo »

Si deseas centrar tanto horizontal como verticalmente, puedes usarpaddingytext-align: center:

Estoy centrado tanto horizontal como verticalmente.


Ejemplo

.center { padding: 70px 0; border: 3px solid green; text-align: center; }

Pruébalo »

Centrado vertical - usando line-height

Estoy centrado verticalmente.


Ejemplo

.center { line-height: 200px; height: 200px; border: 3px solid green; text-align: center; } /*Si el texto tiene varias líneas, agrega el siguiente código:*/ .center p { line-height: 1.5; display: inline-block; vertical-align: middle; }

Pruébalo »

Centrado vertical - usando position y transform

Además de usarpaddingyline-heightla propiedad, también podemos usartransformla propiedad para establecer el centrado vertical:


Ejemplo

.center { height: 200px; position: relative; border: 3px solid green; } .center p { margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

Pruébalo »

Consejo:Para más contenido sobre la propiedad transform, consultael capítulo de Transformaciones 2D。


Más ejemplos

CSS usa margin para centrar el div

CSS usa posicionamiento absoluto para alinear el div a la derecha

Otras extensiones