概要
unicode-bidi
CSS プロパティと direction
プロパティは、文書内の双方向テキストの扱いに関係します。 例えば、テキストブロックに左から右 (LTR) 方向と右から左 (RTL) 方向へ記述されるテキストの両方が含まれる場合、ユーザエージェントは、複雑な Unicode アルゴリズムを用いてテキストの表示方法を決定します。このプロパティは、このアルゴリズムを上書きして開発者がテキストの埋め込みを制御できるようにします。
unicode-bidi
と direction
プロパティだけは、all
短縮プロパティによる影響を受けません。
初期値 | normal |
---|---|
適用対象 | 全要素。ただし一部の値はインラインでない要素には効果がありません |
継承 | 不可 |
メディア | visual |
計算値 | 指定値 |
Animation type | discrete |
正規順序 | 形式文法で定義される一意のあいまいでない順序 |
構文
/* キーワード値 */ 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 および isolate 、isolate-override キーワードを追加 |
CSS Level 2 (Revision 1) unicode-bidi の定義 |
勧告 | 初期定義 |
ブラウザ実装状況
機能 | 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 まで) にロックアップされてしまうため、使用を避けることが最善です。接頭辞なしのバージョンを選んでください。