| この記事の要点 |
|
text-align プロパティとは
text-align はブロックコンテナ内のインラインコンテンツ (テキスト、インライン要素、インラインブロック要素) の水平方向の揃えを指定する CSS プロパティです。
初学者がよく誤解するのは「div のようなブロック要素自体を中央寄せにする」用途では使えないこと。ブロック要素の中央寄せは margin: 0 auto や flexbox を使います。
値の一覧
| 値 | 意味 |
|---|---|
left | 左揃え |
right | 右揃え |
center | 中央揃え |
justify | 両端揃え (単語間隔を調整) |
start | 論理的な「始端」 (LTR では左、RTL では右) |
end | 論理的な「終端」 (LTR では右、RTL では左) |
match-parent | 親の text-align を継承 (start/end の解決方法が変わる) |
justify-all | 最終行も含めて両端揃え (実装中) |
基本例
.left { text-align: left; }
.right { text-align: right; }
.center { text-align: center; }
.justify{ text-align: justify;}<p class="left">左揃え (デフォルト)。コンテンツが左から始まる。</p>
<p class="right">右揃え。右端に揃う。</p>
<p class="center">中央揃え。中央に配置される。</p>
<p class="justify">
両端揃え。行末を強制的に右端に揃えるために、
単語間隔がブラウザによって自動調整される。
最終行は左揃え (justify-all を使えば最終行も両端揃え)。
</p>
論理プロパティ (start / end)
多言語サイトでは start / end が便利。LTR (英語 / 日本語) と RTL (アラビア語 / ヘブライ語) で自動的に向きが切り替わる。
/* 単方向の場合の差 */
.a { text-align: left; } /* LTR でも RTL でも常に左 */
.b { text-align: start; } /* LTR では左、RTL では右 */
/* 多言語対応サイトでの推奨 */
body { text-align: start; }
justify (両端揃え) の使いどころ
新聞や本のような段組みレイアウトで好まれる仕上がり。ただし日本語では単語境界の判定が難しく、不自然な空白ができることがあります。
.article-body {
text-align: justify;
text-justify: inter-character; /* 日本語向けの調整 */
word-break: normal;
hyphens: auto; /* 英文ならハイフネーション併用 */
}
影響を受けるもの / 受けないもの
| 対象 | 影響 |
|---|---|
| テキスト | 受ける |
インライン要素 (span / a) | 受ける |
インラインブロック (img / display:inline-block) | 受ける |
ブロック要素 (div / p) | 受けない (要素自体は動かない) |
| flex / grid 子要素 | 受けない (justify-items / justify-content を使う) |
定番パターン
1. 見出しを中央寄せ
.section-title {
text-align: center;
font-size: 24px;
margin: 2em 0;
}
2. テーブルセルの揃え
td { text-align: left; } /* デフォルトの確認 */
td.amount { text-align: right; } /* 金額は右揃え */
td.center { text-align: center; } /* ステータスなど */
3. 画像を中央寄せ (インラインブロックの場合)
.image-wrapper {
text-align: center;
}
.image-wrapper img {
display: inline-block; /* 通常 img はインラインなのでそのままでも OK */
}
4. ブロック要素を中央寄せ (text-align ではない)
.block {
width: 600px;
margin: 0 auto; /* ブロック要素は margin auto */
}
.flex-parent {
display: flex;
justify-content: center; /* flexbox なら justify-content */
}
継承
text-align は継承されるプロパティ。親に指定すれば子のインラインコンテンツに伝播します。
body { text-align: left; } /* 全体は左揃え */
.center-area { text-align: center; }
/* この中の p / h2 / a / span などは中央揃え */
FAQ
Q: div 自体を中央寄せにしたいが効かない
A: text-align: center はインラインコンテンツ用。div 自体には margin: 0 auto、または親側で flexbox / grid を使う。
Q: justify で日本語が不自然
A: 日本語の両端揃えは文字間隔を均等に詰めるのが自然。text-justify: inter-character; を併用するか、そもそも justify を使わず start にする選択肢もあり。
Q: left と start どちらを使うべき?
A: 多言語対応の予定があれば start。LTR 言語のみなら left でも問題なし。
Q: 揃えが効かないことがある
A: 対象がインラインコンテンツでない (子もブロック要素ばかり) と影響しない。子に display: inline-block をかけるか、親で flexbox を使う。
継承とリセット
text-align は継承プロパティのため、深い階層で意図しない値を引きずってしまうことがあります。リセットしたい場合は明示的に初期値を入れます。
/* 明示的リセット */
.reset-text-align {
text-align: start; /* デフォルトに戻す (論理プロパティ) */
}
/* 全テーブルの数値セルだけ右寄せ */
table td.num {
text-align: right;
font-variant-numeric: tabular-nums; /* 数字幅も揃える */
}
RTL 言語 (アラビア語など) との対応
RTL では文章が右から左に流れます。direction: rtl; を設定すると、start が右、end が左を指すようになります。
<div dir="rtl">
<p style="text-align: start;">這是阿拉伯文範例 (右側對齊)</p>
<p style="text-align: end;">這是 end (左側對齊)</p>
</div>
vertical-align との混同に注意
text-align は水平方向のみ。垂直方向は vertical-align (インラインボックスのベースライン揃え) で扱います。混同しないこと。
関連プロパティ
- fontプロパティ — フォントの一括指定
text-justify— justify 時の調整方法vertical-align— 縦方向の揃えjustify-content/justify-items— flex / grid での揃え
子ページはありません
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15