We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

概要

unicode-bidi CSS プロパティと direction プロパティは、文書内の双方向テキストの扱いに関係します。 例えば、テキストブロックに左から右 (LTR) 方向と右から左 (RTL) 方向へ記述されるテキストの両方が含まれる場合、ユーザエージェントは、複雑な Unicode アルゴリズムを用いてテキストの表示方法を決定します。このプロパティは、このアルゴリズムを上書きして開発者がテキストの埋め込みを制御できるようにします。

unicode-bididirection プロパティだけは、all 短縮プロパティによる影響を受けません。

注記: このプロパティは DTD デザイナー向けです。ウェブデザイナー等の作者は、このアルゴリズムを上書きすべきではありません。

初期値normal
適用対象全要素。ただし一部の値はインラインでない要素には効果がありません
継承不可
メディアvisual
計算値指定値
Animation typediscrete
正規順序形式文法で定義される一意のあいまいでない順序

構文

/* キーワード値 */
unicode-bidi: normal;
unicode-bidi: embed;
unicode-bidi: isolate;
unicode-bidi: bidi-override;
unicode-bidi: isolate-override;
unicode-bidi: plaintext;

/* グローバル値 */
unicode-bidi: inherit;
unicode-bidi: initial;
unicode-bidi: unset;

normal
要素は、双方向アルゴリズムを尊重し、追加の埋め込みのレベルを提供しません。インライン要素に対しては、要素の境界に渡って、並べ替え作業を省略します。
embed
要素がインラインの場合、この値は双方向アルゴリズムを尊重し、追加の埋め込みのレベルを開きます。この埋め込みレベルの方向は、direction プロパティにより与えられます。
bidi-override
インライン要素に対しては、この値で上書きされます。ブロックコンテナ要素に対しては、この値でインラインレベルの子孫を上書きし、別のブロックコンテナ要素は上書きしません。これは、要素内部に作用することを意味し、並べ替えは direction による順序に従います。双方向アルゴリズムの省略された部分は無視されます。
isolate
このキーワードは、要素のコンテナの記述方向が、要素の内容を考慮せずに計算されることを示します。要素はその兄弟から 隔離 (isolated) されます。双方向解決アルゴリズムが適用される時、そのコンテナ要素は、対象の要素を 1 個またはいくつかの U+FFFC Object Replacement Character として処理します。つまり、画像要素のように扱います。
isolate-override
このキーワードは、周囲のコンテンツに isolate キーワードの隔離処理を適用し、内部のコンテンツに bidi-override キーワードの上書き処理を適用します。
plaintext
このキーワードは、要素の記述方向を、その親要素の双方向状態や direction プロパティの値を考慮せずに計算します。記述方向は、Unicode Bidirectional Algorithm の P2 および P3 規則を用いて計算されます。
この値により、Unicode Bidirectional Algorithm に従うツールを用いてすでに整形されたデータを表示できます。

正規の構文

normal | embed | isolate | bidi-override | isolate-override | plaintext

.bible-quote {
  direction: rtl;   
  unicode-bidi: embed;
} 

仕様

仕様書 策定状況 備考
CSS Writing Modes Module Level 3
unicode-bidi の定義
勧告候補 plaintext および isolateisolate-override キーワードを追加
CSS Level 2 (Revision 1)
unicode-bidi の定義
勧告 初期定義

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 2.0 1.0 (1.7 or earlier) 5.5 9.2 1.3
isolate 16 -webkit [1][4]
48.0 (接頭辞なし)
10 (10) -moz [2]
50 (50)
未サポート 未サポート -webkit [4]
plaintext 48.0 (接頭辞なし) 10 (10) -moz
50 (50)
未サポート 未サポート 未サポート
isolate-override 48.0 (接頭辞なし) 17 (17) -moz
50 (50)
未サポート 未サポート 未サポート
機能 Android Android Webview Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
基本サポート 1.0 (有) 1.0 (1.0) 6 8 3.1 (有)
isolate ? 48.0 10.0 (10) -moz
50.0 (50)
未サポート 未サポート 未サポート 48.0
plaintext 未サポート 48.0 10.0 (10) -moz [3]
50.0 (50)
未サポート 未サポート 未サポート 48.0
isolate-override 未サポート 48.0 17.0 (17) -moz
50.0 (50)
未サポート 未サポート 未サポート 48.0

[1] Chrome 19 から、以前の仕様からの構文である isolate キーワードを bidi-override とともに使用することが許可されました。

[2] Firefox 10 から Firefox 16 まで、旧版の仕様の構文である isolate キーワードを bidi-override とともに使用する構文が実装されました。Firefox 17 から、この構文は使用できません。1 個の値だけが許可され、以前の isolate bidi-override は、新しい isolate-override キーワードを使用して記述できます。

[3] Firefox 15 まで、plaintext はインライン要素に対して何もしませんでした。仕様が変更され、Firefox 15 で実装が修正されました。

[4] -webkit-isolate を使うと、古いバージョンの Safari (バージョン 9 まで) と Chrome (バージョン 47 まで) にロックアップされてしまうため、使用を避けることが最善です。接頭辞なしのバージョンを選んでください。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: Marsf, Sebastianz, ethertank, sosleepy
最終更新者: Marsf,