#
要素について
カテゴリー | フロー・コンテンツ、フレージング・コンテンツ、パルパブル・コンテンツ |
利用場所 | フレージング・コンテンツが置ける場所 |
内容 | フレージング・コンテンツ |
タグの省略 | 不可 |
“bdi”要素はまわりのテキストとは書字方向が異なるテキストであることを示す要素です。
通常テキストはそれぞれの文字にもともと設定されている書字方向に従って“双方向アルゴリズム”により並ぶ順番が決められています。しかし、書字方向が異なる文字が混在したテキストでは“双方向アルゴリズム”によって数字や記号などの書字方向が曖昧な文字がその前後の文字に影響されて正しい順番にならないことがあります。“bdi”要素によって前後のテキストから分離することでこの問題を解消することができます。
“dir”属性を指定しない場合は“bdi”要素の内容の書字方向はその文字に設定されている書字方向に従って決められます。
書字方向が一定のテキストの中に書字方向が異なる可能性があるテキストをユーザーの入力などで埋め込む場合などに有効です。
サンプルコード
“bdi”要素によって双方向アルゴリズムを分離しない場合、右から左へ書くアラビア語に影響されて書字方向が曖昧な記号(“:”)と数字が右から左へ書く文字であると判定されてしまうため本来右側へ並ぶはずのものが左側へ配置されてしまいます。
<ul>
<li>ﺗﺎﺭﻭﺃﻭ:明日は何時に来られる?</li>
<li>ﻫﺎﻧﺎﻛﻮ:12時ぐらい。</li>
<li>ﺗﺎﺭﻭﺃﻭ:3号館の前に集合ね。</li>
<li>ﻫﺎﻧﺎﻛﻮ:わかった。</li>
</ul>
- ﺗﺎﺭﻭﺃﻭ:明日は何時に来られる?
- ﻫﺎﻧﺎﻛﻮ:12時ぐらい。
- ﺗﺎﺭﻭﺃﻭ:3号館の前に集合ね。
- ﻫﺎﻧﺎﻛﻮ:わかった。
#
#
仕様書
“bdi”要素はHTML5から定義されている要素です。現行の仕様であるHTML Living Standardでも定義されています。
DOMインターフェース
“bdi”要素は“HTMLElement”インターフェイスを使用します。
UAスタイルシート
@namespace url(http://www.w3.org/1999/xhtml);
bdi:dir(ltr) {
direction: ltr;
}
bdi:dir(rtl) {
direction: rtl;
}
bdi {
unicode-bidi: isolate;
}