Definición | Establece el comportamiento del algoritmo utilizado para el texto bidireccional |
---|---|
Valores permitidos | Alguno o todos los siguientes valores y en cualquier orden:
|
Valor inicial | normal |
Se aplica a | Todos los elementos |
Válida en | medios visuales |
Se hereda | no |
Definición en el estándar | http://www.w3.org/TR/CSS21/visuren.html#propdef-unicode-bidi |
La propiedad unicode-bidi
guarda relación con la propiedad direction, ya que se emplea cuando una página HTML contiene texto escrito en idiomas con diferentes direcciones de escritura. Algunos idiomas como el árabe y el hebreo escriben sus contenidos de derecha a izquierda, mientras que la mayoría de idiomas utilizan el sentido contrario.
La propiedad direction permite indicar la dirección en la que están escritos los contenidos de cada elemento de la página, de forma que el navegador pueda mostrarlos correctamente. La dificultad reside en que un mismo elemento, como por ejemplo un mismo párrafo, puede tener contenidos escritos en las dos direcciones. Este comportamiento se denomina bidireccionalidad y suele abreviarse por bidi.
El estándar Unicode define un algoritmo muy complejo para determinar correctamente la direccionalidad del texto. El estándar HTML utiliza este mismo algoritmo tal y como se explica en su especificación oficial.
Básicamente, el algoritmo bidi de Unicode consiste en crear nuevos niveles de anidamiento cada vez que cambia la dirección del contenido de un elemento. Si un párrafo está escrito por ejemplo en español, su direccionalidad es de izquierda a derecha. Si en su interior se incluyen palabras escritas en árabe, esas palabras crean un nivel de anidamiento en el que el texto se muestra de derecha a izquierda. Si a su vez esas palabras árabes contienen en su interior otro contenido escrito en español, se crea un segundo nivel de anidamiento en el que el sentido de escritura vuelve a ser de izquierda a derecha.
El navegador crea tantos niveles de anidamiento como sean necesarios hasta alcanzar el máximo de 61 niveles definido por el estándar de Unicode. La propiedad unicode-bidi
permite modificar el comportamiento de este algoritmo mediante alguno de los siguientes valores: normal
, embed
y bidi-override
.
El valor normal
indica que no se debe crear un nuevo nivel de anidamiento para el contenido. Por su parte, el valor embed
crea un nuevo nivel de anidamiento para el elemento en línea sobre el que se utiliza. La direccionalidad de este nuevo nivel se establece mediante la propiedad direction.
Por último, el valor bidi-override
indica que los contenidos del elemento se deben ordenar de acuerdo al valor de la propiedad direction, ignorando por tanto el algoritmo de bidireccionalidad.
En la práctica, la propiedad unicode-bidi
apenas se utiliza, ya que la propiedad direction es suficiente para indicar la dirección en la que se escriben los diferentes contenidos de la página.