bdiタグ -方向テキスト(Bidirectional Text)を扱う|HTML辞典

<bdi>タグとは?

<bdi> タグは、双方向テキスト(Bidirectional Text)を扱うためのタグです。
右から左(RTL)や左から右(LTR)のテキストを混在させても、文字の順序が正しく表示されるように制御します。

基本情報

コンテンツモデル

フローコンテンツ(Flow Content)、フレージングコンテンツ(Phrasing Content)。

閉じタグの有無

<bdi>開始タグ(<bdi>)と閉じタグ(</bdi>)の両方が必要 です。

基本的な記述方法

<p>ユーザー名: <bdi>أحمد</bdi></p>

使用できる主な属性

<bdi> タグ自体には特別な属性はありませんが、自動的に双方向テキストを処理 します。

CSSを使ったデザイン変更

<bdi> タグのテキストは通常のテキストと同じ扱いですが、スタイルを適用できます。

bdi {
font-weight: bold;
color: blue;
}

適切な使用例

✅ 異なる言語のユーザー名を正しく表示する

<p>ユーザー名: <bdi>أحمد</bdi></p>

✅ LTR(左から右)と RTL(右から左)を混在させる

<p>新しいメッセージ: <bdi>علي</bdi></p>

✅ 変数名などを正しく表示する

<p>ユーザー <bdi>משה</bdi> のスコアは 95 です。</p>

適切でない使用例(誤った使い方)

<bdi> を使用しないと混在テキストが崩れる

<!-- NG: LTR と RTL の混在 -->
<p>新しいメッセージ: علي</p>

正しい書き方(<bdi> でテキストの方向を適切に制御)

<p>新しいメッセージ: <bdi>علي</bdi></p>

<bdi>タグと他のタグの違い

タグ役割特徴適切な用途
<bdi>双方向テキストを制御RTL / LTR の混在に対応ユーザー名、動的テキスト
<bdo>テキストの方向を指定dir="rtl" で強制変更文章全体の方向制御
<span>インラインテキストの装飾方向制御なしスタイリングのみ

使用上の注意点

✅ 異なる言語のテキストを適切に表示する

  • アラビア語やヘブライ語など、RTL テキストを含む場合に使用する。

bdibdo とは異なり、自動で双方向テキストを処理する

  • bdo はテキストの方向を強制的に指定するが、bdi は自動で処理する。

関連タグ

  • <bdo> – テキストの方向を指定
  • <span> – インラインテキストの装飾
  • <p> – 段落を作成

まとめ

<bdi> タグは、HTML文書内で 双方向テキストを適切に表示するためのタグ です。
RTL(右から左)と LTR(左から右)のテキストを混在させても、正しい順序で表示できます。