Definición | Establece la alineación del contenido de un elemento de bloque |
---|---|
Valores permitidos | Uno y sólo uno de los siguientes valores:
|
Valor inicial | left si el texto se escribe de izquierda a derecha (valor ltr en la propiedad direction ) y right si el texto se escribe de derecha a izquierda (valor rtl en la propiedad direction ) |
Se aplica a | elementos de bloque y celdas de tabla |
Válida en | medios visuales |
Se hereda | si |
Definición en el estándar | w3.org/TR/CSS21/text.html#propdef-text-align |
Ejemplos de uso
A pesar de su nombre, la propiedad text-align
no sólo controla la alineación del texto. En realidad, esta propiedad establece la alineación de los contenidos (texto, imágenes) que se encuentran dentro de un elemento de bloque.
El valor inicial de la propiedad text-align
depende a su vez del valor de la propiedad direction. Si el texto se escribe de izquierda a derecha (direction: ltr
) el valor inicial de text-align
es left
. Por el contrario, el valor inicial de text-align
es right
cuando el texto se escribe de izquierda a derecha (direction: rtl
).
La propiedad text-align
define cuatro valores para alinear los contenidos a la izquierda (left
), a la derecha (right
), centrados (center
) o justificados (justify
). El siguiente ejemplo muestra cuatro párrafos iguales con diferentes valores en sus propiedades text-align
:
text-align: left Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
text-align: right Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
text-align: center Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
text-align: justify Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Además del texto, la propiedad text-align
alinea todos los contenidos que se encuentran dentro del elemento sobre el que se aplica esta propiedad. El siguiente ejemplo muestra cómo se alinean el texto y la imagen de un elemento <div>
al que se aplica la propiedad text-align
:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Como la propiedad text-align
alinea los contenidos de un elemento, no se puede utilizar directamente sobre el contenido que se quiere alinear. Si se considera el siguiente ejemplo:
.imagen1 { text-align: center; }
div { text-align: center; }
<img class="imagen1" src="imagen.png" />
<div>
<img src="imagen.png" />
</div>
La única imagen que se muestra centrada es la que se encuentra dentro del <div>
, ya que la propiedad text-align
no alinea un elemento sino sus contenidos:
El valor justify
indica que los contenidos del elemento se deben mostrar de forma justificada, es decir, igualando la longitud de todas las líneas del texto. El estándar de CSS 2.1 no establece el algoritmo que se debe utilizar para justificar los contenidos, por lo que cada navegador define su propio algoritmo.
El principal problema del valor justify
es que los navegadores no son capaces de dividir con guiones las palabras que no caben enteras en una línea, tal y como hacen todos los procesadores de texto avanzados. Por este motivo, este valor hace que el texto muestre espacios en blanco demasiado grandes, sobre todo en las columnas de texto estrechas:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce ut leo eu ipsum faucibus pretium. Donec iaculis lorem eleifend mi tempor porttitor. Integer porttitor dui vel dui. Donec ornare adipiscing pede. Proin elementum augue ut magna.
La propiedad text-align
solo alinea los contenidos formados por elementos en línea, por lo que los elementos de bloque como las tablas y los <div>
no se pueden alinear con esta propiedad. Si se considera el siguiente ejemplo:
div { text-align: center; }
<div>
<table>
...
<td>Celda 1-1</td>
<td>Celda 1-2</td>
...
</table>
</div>
La regla CSS anterior indica que los contenidos del elemento <div>
se deben centrar, por lo que:
- Como la tabla es un elemento de bloque, ignora la alineación de la propiedad text-align
- Como la propiedad text-align
se hereda, las celdas de la tabla si que muestran sus contenidos centrados
Los navegadores muestran el ejemplo anterior de la siguiente manera:
Celda 1-1 | Celda 1-2 |
Celda 2-1 | Celda 2-2 |
Para centrar horizontalmente la tabla, se pueden utilizar los márgenes automáticos:
div { text-align: center; }
table { margin: auto; }
<div>
<table>
...
<td>Celda 1-1</td>
<td>Celda 1-2</td>
...
</table>
</div>
Las nuevas reglas CSS ahora si que muestran una tabla centrada respecto de su elemento contenedor y con todos sus contenidos también centrados:
Celda 1-1 | Celda 1-2 |
Celda 2-1 | Celda 2-2 |