| この記事の要点 |
|
direction プロパティとは
direction は CSS のプロパティで、テキストや行内ボックスの進行方向を指定します。日本語や英語のように左から右へ読む言語(LTR: Left-To-Right)と、アラビア語・ヘブライ語のように右から左へ読む言語(RTL: Right-To-Left)を切り替える際に使用します。直接的にはテキストの並びだけでなく、テーブルの列順、リストマーカーの位置、Flexbox / Grid の主軸方向にも影響を与えます。
構文
selector {
direction: ltr; /* 初期値:左から右 */
direction: rtl; /* 右から左 */
}
値の一覧
| 値 | 意味 |
|---|---|
ltr | 左から右(既定値) |
rtl | 右から左 |
inherit | 親要素の値を継承 |
使用例
1. テキストを RTL にする
<p style="direction: rtl;">ABC アラビア語の方向はこちらの向きです</p>このように指定すると、行ボックスの開始位置が右端になり、テキストは右詰めで描画されます。
2. テーブルの列順を反転
table.rtl {
direction: rtl;
}テーブルに direction: rtl を指定すると、<th> / <td> の並びが視覚的に右→左になります。RTL ロケール対応サイトでよく使われます。
3. リストマーカーの位置
RTL を指定すると、<ul> / <ol> のマーカーが右側に表示されます。
unicode-bidi との関係
direction プロパティの効果を確実に出すには、Unicode 双方向アルゴリズム(BiDi)を意識した unicode-bidi プロパティを併用するのが基本です。両者は必ずセットで考えられます。
| 値 | 意味 |
|---|---|
normal | 通常(既定値)。direction による方向制御は限定的 |
embed | 新しい埋め込みレベルを開く |
isolate | BiDi 計算を周囲から分離する(モダン UI で推奨) |
bidi-override | BiDi アルゴリズムを無視して direction をそのまま適用 |
HTML の dir 属性との違い
HTML 側にも書字方向を示す dir 属性があり、こちらは「文書構造としての方向」を表します。一方 direction は「スタイル上の方向」を指定します。基本的には HTML の dir 属性を優先し、direction はあくまでスタイル調整時の上書きとして使うのが推奨される使い分けです。
<!-- 推奨:意味としての方向は HTML 属性で -->
<p dir="rtl">مرحبا بالعالم</p>
装飾目的では使わない方がいい
「テキストを右揃えにしたい」「Flex の並びを反転したい」だけが目的なら、direction ではなく次のプロパティを使う方が意図が明確です。
- 右揃え →
text-align: right; - 縦書き・横書き切替 →
writing-mode: vertical-rl; - Flexbox の並び反転 →
flex-direction: row-reverse;
関連記事
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38