【HTML】bdiタグでテキストの方向を周囲と分ける

bdiタグHTML
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではHTMLで使う事ができるbdiタグの使い方を解説しています。

bdiタグ

bdiはテキストの方向を周囲のテキストと変えたい場合に使います。これは日本ではあまり馴染みのない書き方なんですが、一部の国では右から左へ書く場合があります。その場合に日本式で書くと現地の人々からは逆方向に書かれているように見えます。それを防ぐために存在するのが、bdiです。

アラビア語のことはさっぱり分かりませんが、アラビア語は右から左へ読み書きするそうです。試しにアラビア語をコピペして、バックスペースキーで一番右の文字を削除してみたところ実際に消えたのは一番左の文字でした。そういう言語のテキスト方向を守るように定義するのが、bdiの機能となります。

2022年現在、Safariのみbdiをサポートしていません。

bdiタグの書き方

bdiはテキストの方向を守りたいものを囲むだけでOKです。アラビア語ではありませんが、仮に右から左へ書くテキストがあった場合は以下のように書きます。

<p>左から右のテキスト<bdi>右から左のテキスト</bdi>左から右のテキスト</p>

このように書くと、bdiで囲んだ部分のテキストのみ言語ルールに従った方向で書かれます。

少し話はそれますが、囲んだテキスト全体を右から左へと並ばせたい場合は、bdoタグdir属性を使います。

<p><bdo dir="rtl">左右反転したテキスト</bdo></p>

こんな感じでグローバル属性であるdir属性を使って、反転させたいテキストを囲みます。実際のブラウザではこんな感じで表示されます。

左右反転したテキスト

上のテキストは改行の開始地点が左からなので、テキストが意味不明な位置からスタートしてますね。これを右端からのスタートにしたい場合は、bdoタグ以外にdir属性を付与します。

<p dir="rtl"><bdo dir="rtl">左右反転したテキスト</bdo></p>

左右反転したテキスト

こんな感じになります。

bdiタグで使える属性

bdiは固有の属性は無く、グローバル属性・イベント属性に対応しています。

まとめ

bdiは日本では馴染みの無い書き方になります。大昔は日本でも右から左へ書いていましたが、今となっては左から右がほとんどです。そのためこのタグを活用する場合はアラビア語のような外国語を扱うようなサイトが適しています。

HTMLの基礎
HTMLってどんな言語?書き方やHTMLファイルの作成方法などを解説。
HTMLタグで押さえておきたいポイント3選
HTMLタグを使う上で必ず押さえておいてほしいポイント3つの解説です。
HTMLタグと属性一覧
HTMLタグと属性の一覧です。
tableタグ生成ページ
tableタグの基本形を生成できるページです。
ulタグ・olタグ生成ページ
ulタグolタグの基本形を生成できるページです。
タイトルとURLをコピーしました