CSS3

プロパティ

unicode-bidi

  編集:2022.07.08 by T.A.

mdn

direction プロパティと共に、文書内の双方向テキストの扱いを指定する。

名前 unicode-bidi
normal | embed | isolate | bidi-override | isolate-override | plaintext
初期値 normal
適用対象 すべての要素。ただし、注釈文を見よ。
継承 されない
百分率 受容しない
算出値 指定値
正準的順序 文法に従う
アニメーション型 アニメート不可

注意: HTML ユーザー エージェントにおける CSS スタイル付け機能は、オフにされることもあるので、HTML 作者には、スタイルシートが無い下でも正しい双方向レイアウトが確保されるよう、[HTML の[dir 属性と BDO 要素]を利用する、および[テキストレベル vs. グループ化レベル]の HTML 要素型を適切に区別する]ことを推奨する。作者は、HTML 文書に unicode-bidi を利用するべきでない。

通常は(すなわち、unicode-bidi が normal のとき)、行内ボックスは、Unicode 双方向アルゴリズムに対し透過的になる。すなわち、内容は、ボックスの境界は無かったかのように順序付けられる。unicode-bidi プロパティ用の他の値は、そのアルゴリズムの新たな視野を行内ボックスに作成し、テキストの内在的方向性を上書きさせる。

¶表省く→

normal
ボックスは、双方向アルゴリズムにおいて、追加の埋め込みレベルを開かない。行内ボックスに対しては、ボックス境界を越えて、暗黙的な並び替えが働く。
<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:normal;
">aaa bb cc</DIV>

embed
ボックスが行内である場合、この値は、方向上の埋め込み(directional embedding)と呼ばれる、双方向アルゴリズムにおける追加の埋め込みレベルを開く。この埋め込みレベルの方向は、ボックスの direction プロパティにより与えられる。ボックスの内側では、暗黙的に並び替えが行われる。

注記: この値は、行内でないボックス上では効果はない。

<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:embed;
">aaa bb cc</DIV>

isolate
この値は、行内ボックスにおいて、その内容を 双向隔離(bidi-isolate)する。すなわち、それぞれの[[[ブロック境界や強制段落分断]により中断されないような、行内レベルのボックス]からなる並び]が、隔離列(isolated sequence)として扱われることを除いて、方向上の埋め込みと同様になる(それに則って、埋め込みレベルを増やす):

これにより、[ボックスの内側の内容が、ボックスの周囲の内容により双向影響される]ことも[ボックスの周囲の内容が、ボックスの内容や、ボックスに指定された方向性により双向影響される]ことも、なくなる。しかしながら、ボックス内の強制段落分断は、依然として、それを包含している段落の中で、行分断を作成する。

注記: この値は、行内でないボックス上では効果はない。

<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:isolate;
">aaa bb cc</DIV>

bidi-override
この値は、ボックスに直に含まれる行内レベルの内容を 方向上の上書き(directional override)の下に置く。
すなわち、ボックスが行内ならば、[ボックスは、双方向アルゴリズムにおいて方向上の埋め込みの様にふるまう]が、[ボックスの中の並び替えは、direction プロパティに従う順序通りに配列され、双方向アルゴリズムを成す暗黙的な部分は無視される]ことを意味する。

ボックスがブロック コンテナならば、この上書きは[その内容すべてを囲む根行内ボックス]に適用される。

<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:bidi-override;
">aaa bb cc</DIV>

isolate-override
これは、isolate による双向隔離のふるまいと、bidi-override による方向上の上書きのふるまいを組み合せる: それは、周囲の内容に対しては、isolate と等価になる一方、ボックスの中では、bidi-override が指定されていたかのように内容を順序付ける。それは実質的に、隔離列の内側に方向上の埋め込みを入れ子にする。
<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:isolate-override;
">aaa bb cc</DIV>

plaintext
この値は、Unicode 双方向アルゴリズムの目的においては、ボックスの各[双向段落ブロック コンテナの場合)/隔離列行内ボックスの場合)]の基底方向性が、(ボックスの direction プロパティは利用せずに)[Unicode 双方向アルゴリズムの規則 P2、P3 による経験則]に従って決定されることを除いて、isolate としてふるまう。
<DIV style="border:1px solid red; width:150px; font-size:20px;
 direction:rtl;
 unicode-bidi:plaintext;
">aaa bb cc</DIV>

normal 以外の値は、実質的に、[段落を,並び替え用の Unicode 双方向アルゴリズムに渡す]前に、[Unicode 双方向アルゴリズムの条項 HL3 [UAX9]]に従って、対応する Unicode 双向性制御コードを[テキストストリームの中の、行内要素の始端と終端の所]に挿入する(§ CSS–Unicode 双向性制御による転置、テキストの並び替えを見よ)。

¶表省く

unicode-bidi プロパティは継承されないので、ブロックボックス上に bidi-overrideplaintext を設定しても、子孫ブロックには影響しない。したがって、これらの値は、ブロック レベルの構造を包含しないような[ブロック行内]上での利用に最も適する。

注記: unicode-bidi は、plaintext の場合でも direction プロパティには影響せず、したがって direction プロパティに依存するレイアウト計算にも影響しない。

注記: Unicode アルゴリズムは、埋め込みレベルを 125 階までに制限しているので、unicode-bidi には normal 以外の値を利用し過ぎないように配慮するべきである。特に、行内マークアップの入れ子が深い所では、値 inherit は、細心の注意の下に利用されるべきである。しかしながら、ブロックとしての表示が一般に意図されている要素に対しては、[displayinline に変更された場合でも、その要素内容がひとまとめに保たれる]ように[unicode-bidi を isolate に設定する]ことが選好される(次節の例を見よ)。

¶次の章の例省く


テスト
HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: