<bdi>:ページの書字方向とは分離した書字方向の範囲を指定する要素・HTMLタグの解説

取り扱い 標準仕様
カテゴリー フロー・コンテンツ
フレージング・コンテンツ
パルパブル・コンテンツ
親にできる要素 フレージング・コンテンツを受け入れる要素
子にできる要素 フレージング・コンテンツ
対応ブラウザ caniuseで確認

<bdi>タグの解説

<bdi>は、ページに指定されている書字方向と分離させて別の書字方向を与えたい範囲を指定します。文章の一部を他の部分から切り離して、異なる書字方向のアルゴリズムを反映させる場合に使用します。

「書字方向」とは、文字を書き進める方向の事です。通常、HTMLで書かれた文書は左横書き(LTR)を想定しています。制作者が英文や日本語を使う限り、特に意識することはありません。しかし、内容の一部にアラビア語などの右横書き(RTL)が存在する場合は、その部分だけを分離する必要があります。

「bdi」とは「Bi-Directional Isolation」の略で、「分離双方向要素」というような意味を持っています。この要素によって隔離されたテキストは、周囲の書字方向から影響を受けず、周囲の書字方向に影響を及ぼしません。

<bdi>タグの特徴

  • レイアウトの初期値はインラインです。文章の改行には影響を与えません。
  • 視覚的な効果は特に与えられません。必要に応じてスタイルシートを調整して下さい。
  • 同一のページ内に複数使うことができます。ただし、この要素自体を入れ子にすることは適切ではありません。

<bdi>要素に指定できる属性

グローバル属性
全てのHTML要素に指定できる共通の属性です。詳細は一覧表で解説します。
イベントハンドラ
全てのHTML要素に指定できるコンテンツ属性です。

<bdi>要素の使い方とサンプルコード

この要素の最も基本的な書き方は以下の通りです。文章の中で書字方向が異なる部分を分離します。LTRは「Left to Right」の略で、反対にRTLは「Right to Left」の略です。


LTR <bdi>RTL</bdi> LTR.

文章の書字方向はブラウザが自動的に判断してくれます。書字方向の異なる文字が混在している部分は、これを分離する必要があります。以下の例では、LTRの書式にアラビア語が混ざっている場合に、表示される順番が変わってしまう現象を表しています。


<p>Player <bdi>ارقام عربية</bdi> 123 points.</p>

<bdi>に関連するHTMLタグ

特定範囲の表現を指定する要素
<span> 汎用的なインラインレベルのコンテナを作成する
<br> 改行を行う
<wbr> 文章の中で改行可能な位置を指定する
<b> 文字を太字にする
<mark> 文脈の中で関連性のある文字をマーキングする
<pre> ソースを整形済みテキストとして表示する
<bdi> ページの書字方向とは別の書字方向を指定する
<bdo> 書字方向を指定する
<ruby> ルビを振る文字列の範囲を指定する
<rt> ルビの内容を指定する
<rp> ルビが非対応な環境で読みがなを囲う記号を指定する
<rtc> ルビテキストの集まりを指定する
<sub> 下付き文字として表示する
<sup> 上付き文字として表示する
<details> 折りたたみ可能なディスクロージャー・ウィジェットを作成する
<summary> 折りたたみ可能なディスクロージャー・ウィジェットの概要を表す