La propriété unicode-bidi
, associée à la propriété direction
, permet de gérer du texte bidirectionnel dans un document. Par exemple, si un bloc de texte contient à la fois du texte qui se lit de droite à gauche et du texte qui se lit de gauche à droite, l'agent utilisateur utilisera un algorithme Unicode complexe pour savoir comment afficher le texte. Cette propriété prend le pas sur l'algorithme et permet au développeur de contrôler l'intégration du texte.
Les propriétés unicode-bidi
et direction
sont les deux seules propriétés qui ne sont pas impactées par all
.
Valeur initiale | normal |
---|---|
Applicabilité | tous les éléments bien que certaines valeurs n'aient pas d'effet sur les éléments qui ne sont pas en ligne |
Héritée | non |
Média | visuel |
Valeur calculée | comme spécifié |
Type d'animation | discrète |
Ordre canonique | l'ordre unique et non-ambigu défini par la grammaire formelle |
Syntaxe
/* Avec un mot-clé */ unicode-bidi: normal; unicode-bidi: embed; unicode-bidi: isolate; unicode-bidi: bidi-override; unicode-bidi: isolate-override; unicode-bidi: plaintext; /* Valeurs globales */ unicode-bidi: inherit; unicode-bidi: initial; unicode-bidi: unset;
Valeurs
normal
- L'élément n'ajoute pas de niveau de logique supplémentaire pour l'intégration et l'application de l'algorithme de bidirectionnalité. Pour les éléments en ligne, le réarrangement des éléments est fait entre les frontières des éléments.
embed
- Si l'élément est en ligne, la valeur ajoute un niveau de logique supplémentaire pour l'intégration. La direction du niveau d'intégration est fournie par la propriété
direction
. bidi-override
- Pour les éléments en ligne, cela surcharge la directionnalité. Pour les conteneurs de bloc, cela crée une surcharge pour les éléments-fils qui sont en ligne et qui ne sont pas dans un autre conteneur de bloc. Cela signifie qu'au sein de l'élément, le réarrangement se fait strictement en fonction de la propriété
direction
, la partie implicite apportée par l'algorithme de bidirectionnalité est ignorée. isolate
- Ce mot-clé indique que la directionnalité du conteneur de l'élément devrait être calculée sans prendre en compte le contenu de cet élément. L'élément est donc isolé (isolated en anglais) de ses voisins. Lorsqu'on applique l'algorithme de résolution bidirectionnelle, l'élément conteneur le traite comme un ou plusieurs
U+FFFC Object Replacement Character
(autrement dit, comme une image). isolate-override
- Ce mot-clé applique l'isolation fournie par
isolate
au contenu environnant et applique la surcharge fournie parbidi-override
au contenu intérieur. plaintext
- Ce mot-clé permet de calculer la directionnalité de l'élément sans prendre en compte l'état de son parent ou la valeur de la propriété
direction
. La directionnalité est calculée en utilisant les règles P2 et P3 de l'algorithme de bidirectionnalité Unicode.
Cette valeur permet d'affiché des données qui ont déjà été mises en forme par un outil ayant appliqué l'algorithme de bidirecitonnalité Unicode.
Syntaxe formelle
normal | embed | isolate | bidi-override | isolate-override | plaintext
Exemples
.bible-quote { direction: rtl; unicode-bidi: embed; }
Spécification
Spécification | Statut | Commentaires |
---|---|---|
CSS Writing Modes Module Level 3 La définition de 'unicode-bidi' dans cette spécification. |
Candidat au statut de recommandation | Ajout des mots-clés plaintext , isolate et isolate-override . |
CSS Level 2 (Revision 1) La définition de 'unicode-bidi' dans cette spécification. |
Recommendation | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | 2.0 | 1.0 (1.7 ou moins) | 5.5 | 9.2 | 1.3 |
isolate |
16 -webkit [1][4] 48.0 |
10 (10) -moz [2] 50 (50) |
Pas de support | Pas de support | -webkit [4] |
plaintext |
48.0 | 10 (10) -moz 50 (50)[5] |
Pas de support | Pas de support | Pas de support |
isolate-override |
48.0 | 17 (17) -moz 50 (50) |
Pas de support | Pas de support | Pas de support |
Fonctionnalité | Android | Webview Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 1.0 | (Oui) | 1.0 (1.0) | 6 | 8 | 3.1 | (Oui) |
isolate |
? | 48.0 | 10.0 (10) -moz 50.0 (50) |
Pas de support | Pas de support | Pas de support | 48.0 |
plaintext |
Pas de support | 48.0 | 10.0 (10) -moz [3] 50.0 (50)[5] |
Pas de support | Pas de support | Pas de support | 48.0 |
isolate-override |
Pas de support | 48.0 | 17.0 (17) -moz 50.0 (50) |
Pas de support | Pas de support | Pas de support | 48.0 |
[1] Depuis Chrome 19, la syntaxe permise dans une version antérieure de la spécification est permise (celle où on peut utiliser le mot-clé isolate
avec bidi-override
).
[2] Entre Firefox 10 et Firefox 16 (inclus), l'ancienne version de la spécification, où isolate
pouvait être utilisé avec bidi-override
, a été implémentée. Avec Firefox 17, ce n'est plus possible, seule une seule valeur est permise et la combinaison isolate bidi-override
peut désormais être décrite avec le mot-clé isolate-override
.
[3] Jusqu'à Firefox 15, plaintext
n'avait pas d'impact sur les éléments en ligne (inline). La spécification a évolué et l'implémentation a été corrigée avec Firefox 15.
[4] -webkit-isolate
peut bloquer d'anciennes versions de Safari (jusqu'à la version 9) et Chrome (jusqu'à la version 47), mieux vaut l'éviter et préférer la version non préfixée.
[5] Avant Firefox 50, la valeur plaintext
était ignorée pour les modes d'écritures verticaux (bug 1302734).