SYNCERのロゴ
アイキャッチ画像

bdo要素 - 双方向アルゴリズムの上書き

bdo要素でマークアップした範囲には、双方向アルゴリズムよりも優先して文字の方向を適用できます。文字の方向を明確にdir属性で指定しなければいけません。

概要

名前
bdo (BIDI overwrite)
カテゴリ
Flow content
Phrasing content
Palpable content
配置できる場所
Phrasing contentが期待される場所。
コンテンツモデル
Phrasing content。
タグの省略
開始タグも終了タグも省略できません。
コンテンツ属性
dir - 文字の方向。
DOM Interface
HTMLElement
デフォルトのスタイル

Chrome / Firefox / Safari

bdo {
    unicode-bidi: bidi-override;
}
bdo, bdo[dir] {
    unicode-bidi: isolate-override;
}
bdo {
    unicode-bidi: bidi-override;
}
仕様書
https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-bdo-element

属性

dir属性

この属性はグローバル属性の1つですが、bdo要素では役割が変わります。auto以外の値を指定しなければいけません。bdo要素ではdir属性を省略してはいけません。

グローバル属性

全てのタグで利用できるグローバル属性を指定できます。

チュートリアル

ユーザーエージェントは、日本語や英語は左から右に、アラビア語は右から左に表示します。言語によって表示される文字の方向を振り分けるこの働きを双方向アルゴリズムと呼びます。

<!-- このコードは編集できます。 -->

<h2>左から右(→)</h2>
<p dir="auto">ありがとうございます。</p>
<p dir="auto">Thank you very much.</p>

<h2>右から左(←)</h2>
<p dir="auto">شكرا جزيلا.</p>

さて、グローバル属性であるdir属性は、文字の方向をヒントとしてブラウザに与えますが、実際の表示を左右するものではありません。例えば、次のようにマークアップしても、表示される文字の方向は変わらないということです。SYNCERと表示されるのを確認しましょう。

<!-- このコードは編集できます。 -->

<!-- bdo要素以外でdir属性を指定 -->
<p><span dir="rtl">SYNCER</span></p>

bdo要素にdir属性を指定すると、その方向で文字を表示するよう強制できます。bdo要素のoは、overwrite(上書き)のoです。双方向アルゴリズムを上書きしてしまうのが特徴というわけです。

<!-- このコードは編集できます。 -->

<!-- bdo要素でdir属性を指定 -->
<p><bdo dir="rtl">SYNCER</bdo></p>

デモ

bdo要素のデモです。

<!-- このコードは編集できます。 -->

<h2>bdo要素にdir=rtlの属性を指定</h2>
<p><bdo dir="rtl">SYNCER</bdo></p>

<h2>span要素にdir=rtlの属性を指定</h2>
<p><span dir="rtl">SYNCER</span></p>

サポート状況

クリックすると、バージョンごとの対応状況を確認できます。

FeaturesChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
bdo要素
dir属性
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年2月9日 (木)
コンテンツを公開しました。