Updated / Published

dir属性は指定した要素内の基本的な書字方向を、左から右にする "ltr"(left to right)、または右から左にする "rtl"(right to left)のどちらかのキーワードを指定します。HTML ではキーワードは半角アルファベットの大文字・小文字が区別されません(case-insensitive)が、XHTML では大文字・小文字を区別する(case-sensitive)のでキーワードは小文字で与える必要があります。

日本語や英語のように大半の言語の書字方向は左から右ですが、ヘブライ語やアラビア語、ペルシャ語など文字を右から左に書く言語もあります。このように Unicode には言語毎にそれぞれの文字が左から右へと書かれるものなのか、右から左へと書かれるものなのかといった情報が含められており、UA は文書内のテキストを言語毎に自動的に適切な書字方向で表示する双方向アルゴリズムを搭載しています。しかし、ひとつの文書内に複数の言語が混在しているテキストでは自動的に決まらないこともあります。このように中立な文(固有の方向性を持たない文)がある場合に、各文字を独立して基本方向を指定するのに dir属性が役立ちます。

なお、bdo要素における dir属性とでは役割が異なります。ほとんどの要素型に指定できる共通属性における dir属性は中立な文(固有の方向性を持たない文)がある場合に、基本方向を指定するために使いますが、bdo要素では Unicode の双方向アルゴリズムによって不正確なプレゼンテーションが行われる場合に双方向アルゴリズムを無効化して、強制的にテキストの書字方向を上書きするために使います。

また、dir属性を table要素で用いると、行内のセルの配置順番方向に影響を与えます。表が左から右に進むときは、最初の行は左側で、次の行がその右に続きます。右から左に進むときは、最初の行は右側で、次の行がその左に続きます。どちらの場合も最初の列は上で、次の列が下に続きます。ただし、このような効果があるのは、table要素だけで、行要素(tr要素)や行グループ要素(thead要素, tfoot要素, tbody要素)に用いた場合は、当該要素内のセル内容のテキスト基準方向を指定するだけで、セルの配置自体には影響を与えません。また、安易に装飾目的で書字方向を変更するような使い方をしてはいけません。

dir属性は多言語が扱えるように対応する国際化を示す、i18n(internationalization)の一つです。i18n とは、"internationalization" の "i" と "n" の間に18文字挟まっていることが由来となっています。この i18n に含まれる属性は、すべて子孫要素へと継承されていきます。たとえば、ルート要素(最大の親要素)である html要素自体に dir属性を指定することで、文書内の全ての要素に対して書字方向が指定されたことになります。このとき、異なる書字方向の言語を利用する要素に対しては、個別に dir属性を用いて指定することができ、ひとつの文書内に異種言語を混在させることができます。

バージョン
  • HTML4.01(S,T,F)
  • XHTML1.0(S,T,F)
  • XHTML1.1
必須
bdo要素では必須
非推奨
-
属性値
  • ltr
  • rtl

dir属性を指定できる要素型

A
B
C
D
E
F
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W