タイトル: directionプロパティ
SEOタイトル: CSS direction プロパティの使い方:左右方向(LTR / RTL)の切り替えと unicode-bidi との関係
| この記事の要点 |
|
direction プロパティとは
direction は CSS のプロパティで、テキストや行内ボックスの進行方向を指定します。日本語や英語のように左から右へ読む言語(LTR: Left-To-Right)と、アラビア語・ヘブライ語のように右から左へ読む言語(RTL: Right-To-Left)を切り替える際に使用します。直接的にはテキストの並びだけでなく、テーブルの列順、リストマーカーの位置、Flexbox / Grid の主軸方向にも影響を与えます。
構文
selector {
direction: ltr; /* 初期値:左から右 */
direction: rtl; /* 右から左 */
}
値の一覧
| 値 | 意味 |
|---|---|
ltr | 左から右(既定値) |
rtl | 右から左 |
inherit | 親要素の値を継承 |
使用例
1. テキストを RTL にする
ABC アラビア語の方向はこちらの向きです
このように指定すると、行ボックスの開始位置が右端になり、テキストは右詰めで描画されます。
2. テーブルの列順を反転
table.rtl {
direction: rtl;
}テーブルに RTL を指定すると、 HTML 側にも書字方向を示す مرحبا بالعالم 「テキストを右揃えにしたい」「Flex の並びを反転したい」だけが目的なら、direction: rtl を指定すると、 / の並びが視覚的に右→左になります。RTL ロケール対応サイトでよく使われます。
3. リストマーカーの位置
/ のマーカーが右側に表示されます。unicode-bidi との関係
direction プロパティの効果を確実に出すには、Unicode 双方向アルゴリズム(BiDi)を意識した unicode-bidi プロパティを併用するのが基本です。両者は必ずセットで考えられます。
値 意味 normal通常(既定値)。 direction による方向制御は限定的embed新しい埋め込みレベルを開く isolateBiDi 計算を周囲から分離する(モダン UI で推奨) bidi-overrideBiDi アルゴリズムを無視して direction をそのまま適用HTML の dir 属性との違い
dir 属性があり、こちらは「文書構造としての方向」を表します。一方 direction は「スタイル上の方向」を指定します。基本的には HTML の dir 属性を優先し、direction はあくまでスタイル調整時の上書きとして使うのが推奨される使い分けです。
装飾目的では使わない方がいい
direction ではなく次のプロパティを使う方が意図が明確です。
text-align: right;writing-mode: vertical-rl;flex-direction: row-reverse;関連記事