CSS: Dirección

Las propiedades CSS direction y unicode-bidi permiten establecer la dirección del texto y el desbordamiento horizontal. Su uso puede ser necesario para ciertos idiomas, como el árabe, el hebreo o el persa.

Hay que tener en cuenta que lo más correcto es usar el atributo dir en el documento HTML, de forma general para todos los elementos. Sin embargo, con la propiedad CSS direction es posible definir la direccionalidad del texto de forma individual en algunos elementos HTML. Por ejemplo, se puede usar en párrafos cuyo idioma sea diferente al idioma principal del documento.

Por tanto, usar esta propiedad puede ser fundamental para garantizar la legibilidad de un texto que deba ir en otro idioma diferente al del documento HTML.

El lenguaje CSS utiliza un algoritmo definido por el «estándar Unicode» para determinar el sentido correcto de cada bloque de texto. Este estándar internacional es el sistema de codificación de caracteres que permite representar de forma virtual todos los caracteres de todos los sistemas de escritura del mundo.

A menos que se use la propiedad CSS direction, los navegadores web usarán por defecto los algoritmos que se definen en el «estándar Unicode».

La propiedad ‘direction’

Con la propiedad direction se controla la direccionalidad del texto en un elemento HTML. También permite establecer la dirección de las columnas de una tabla y el desbordamiento horizontal. La mayoría de idiomas usan el texto de izquierda a derecha, por tanto el valor por defecto es ltr.

Esta propiedad puede tener uno de los siguientes valores:

Valor Descripción
ltr De izquierda a derecha.
rtl De derecha a izquierda.

Las letras ltr son un acrónimo de la expresión inglesa Left-To-Right, que significa «de izquierda a derecha». Por su parte, rtl son las iniciales de Right-To-Left y significa «de derecha a izquierda».

El siguiente texto tiene la direccionalidad por defecto (ltr):

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Vamos a invertirla con el valor rtl.

Código CSS:

.rtl {
  direction: rtl;
}

Resultado:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Tal y como se puede observar en este ejemplo, el gran cambio en la direccionalidad se aprecia sobre todo en la última línea. Además, el punto final queda ubicado en el extremo izquierdo del párrafo.

En el caso de aplicar esta propiedad a una tabla HTML, se invertirá el orden de las columnas, de tal modo que la primera columna se verá a la derecha y la última columna se desplazará hasta la izquierda del todo.

En caso de indicar la direccionalidad a las columnas de una tabla, sus celdas no heredan el valor. En cualquier otro elemento HTML del documento, el valor de direction se hereda de forma correcta.

Si un navegador web no tiene soporte de texto bidireccional, ignorará tanto el valor de esta propiedad como el de la propiedad unicode-bidi.

La propiedad ‘unicode-bidi’

Mediante la propiedad CSS unicode-bidi se controla la bidireccionalidad del texto de un elemento HTML. Esta propiedad es útil en ciertas situaciones en las que se mezclan idiomas que se escriben de izquierda («LTR») a derecha con idiomas que se escriben de derecha a izquierda («RTL»).

Esta propiedad se usa en conjunto con la propiedad direction.

Lista de valores de la propiedad unicode-bidi:

Valor Descripción
normal Dirección normal, sin cambios adicionales.
embed Añade un nivel adicional de incrustación.
bidi-override Fuerza la dirección del texto.
isolate Aisla la dirección del texto.
isolate-override Aisla y anula la direccionalidad.
plaintext No se aplica direccionalidad.

El valor predeterminado es normal. Con este valor se indica que el texto se comportará según la dirección que se haya indicado mediante la propiedad direction, sin realizar cambios adicionales.

Si el elemento HTML es de línea, con el valor embed se abre un nivel adicional de incrustación, lo que implica que se puede incrustar un fragmento de texto con una dirección diferente a la dirección del documento HTML.

En elementos de línea, para forzar el texto a seguir una dirección específica se usa el valor bidi-override. Por ejemplo, puede ser útil para conseguir que un texto en inglés («LTR») se muestre de derecha a izquierda («RTL»).

Con el valor isolate es posible modificar la direccionalidad de un texto, aislándolo del resto del párrafo. Por ejemplo, un texto en inglés dentro de un párrafo en árabe, este fragmento seguirá su propia dirección.

En cambio, si lo que se quiere es aislar y anular la direccionalidad del texto circundante, se debe usar el valor isolate-override.

Finalmente, con el valor plaintext es posible indicar que el texto dentro de un elemento debe ser tratado como texto plano, es decir, sin que se aplique ningún tipo de direccionalidad. Por defecto se mostrará de izquierda a derecha.

← Artículo anterior
Artículo siguiente →