ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
vertical-align とは
vertical-align はインラインレベル要素(<span>, <img>, インラインブロック等)とテーブルセル(<td>, <th> または display: table-cell)の縦方向の揃え位置を指定する CSS プロパティです。
「縦方向の揃え」というと幅広く効きそうですが、適用範囲はインラインまたは table-cell に限定される点が最大の注意ポイントです。
構文
selector {
vertical-align: <keyword> | <length> | <percentage>;
}
キーワード値の意味
| 値 | 意味 | 適用 |
|---|---|---|
baseline(既定) | 親のベースラインに揃える | インライン |
top | 行ボックスの上端 / セルの上端 | インライン / table-cell |
middle | 親の中央(x-height の中央) | インライン / table-cell |
bottom | 行ボックスの下端 / セルの下端 | インライン / table-cell |
text-top | 親のフォントの上端 | インライン |
text-bottom | 親のフォントの下端 | インライン |
sub | 下付き文字位置 | インライン |
super | 上付き文字位置 | インライン |
<length>(例: 4px, -2px) | ベースラインから上下にずらす | インライン |
<percentage>(line-height 基準) | line-height の %でベースラインからずらす | インライン |
インライン要素での使用例
テキストと画像を中央で揃える
<p>
これは
<img src="icon.png" alt="" style="vertical-align: middle; height: 20px">
アイコンです
</p>
img は既定で baseline 配置のため、テキストよりやや沈んで見えます。middle を指定すると x-height の中央に揃い、自然な見た目になります。
下付き / 上付き文字
<p>水の化学式は H<span style="vertical-align: sub; font-size: .8em">2</span>O</p>
<p>E = mc<span style="vertical-align: super; font-size: .8em">2</span></p>
テーブルセルでの使用例
セル内の上下方向揃えはまさに vertical-align の独壇場です。
th, td {
vertical-align: top; /* セル上端揃え */
}
.center td {
vertical-align: middle; /* セル中央 */
}
.bottom td {
vertical-align: bottom; /* セル下端 */
}
典型的なトラブル:img の下にできる隙間
HTML で img をブロックで使うと、画像の下に 3〜5px ほどの隙間ができることがあります。これは img がインライン扱いで、フォントのディセンダー領域を確保しているために起こる「あるある」です。
対処法
/* 方法 1: middle に揃える */
img { vertical-align: middle; }
/* 方法 2: bottom に揃える */
img { vertical-align: bottom; }
/* 方法 3: ブロック化(一番確実) */
img { display: block; }
注意:ブロック要素や Flex アイテムには効かない
vertical-align はインラインまたは table-cell 限定です。以下は効きません。
| 状況 | 代わりに使うもの |
|---|---|
ブロック要素(<div>)の中身を縦中央に | Flex(display: flex; align-items: center) |
| Flex アイテムを縦中央に | align-items / align-self |
| Grid セル内を縦中央に | align-items / align-self / place-items |
| 絶対配置で中央 | top: 50%; transform: translateY(-50%) |
Flex に置き換える例
/* これは「効かない」 */
.box {
height: 200px;
vertical-align: middle; /* ブロックなので無効 */
}
/* これが正解 */
.box {
height: 200px;
display: flex;
align-items: center; /* 縦方向中央 */
justify-content: center; /* 横方向中央 */
}
baseline の振る舞いを理解する
初期値 baseline は「親のベースライン」に対する揃えです。インライン要素同士でサイズが違うフォントを並べた時の挙動は、ベースラインで揃うことで保たれています。
<p>
<span style="font-size: 16px">小さい</span>
<span style="font-size: 36px">大きい</span>
<span style="font-size: 16px">小さい</span>
</p>
上記は全てのテキストが下端ではなくベースラインで揃います。揃えたい位置を変えたいときに vertical-align を使います。
長さ・% 指定
キーワードでは表現しきれない微調整に使います。正値で上、負値で下に動かします。
.icon {
vertical-align: -3px; /* 3px 下にずらす */
}
.note {
vertical-align: 30%; /* line-height の 30% 上にずらす */
}
ブラウザ互換
vertical-align は CSS 1 から存在し、すべての主要ブラウザで完全サポートされています。挙動の差は基本的にありません。
FAQ
Q: div の中身を縦中央にしたい
A: vertical-align は使えません。Flex(display: flex; align-items: center)または Grid(place-items: center)を使ってください。
Q: テーブル風の中央揃えを div でも使いたい
A: display: table-cell を使えば vertical-align が効きます。ただし Flex のほうが一般的で柔軟です。
Q: 親のフォントを変えたら揃えが崩れた
A: middle は x-height 基準なので、フォントによって中央位置がズレます。完全な縦中央が要るなら Flex を使ってください。
関連
- white-spaceプロパティ
- テキスト — 親カテゴリ
- CSS — 上位カテゴリ
- line-height / display / align-items
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Spring Framework 記事一覧31件|DI・設定・例外の対処 2026-09-07 07:45:13
- Laravel 記事一覧55件|環境構築・ルーティング・DB・エラー対処 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Javaの定数 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- hostnameコマンドの使い方|Windows・Linux・macOSでホスト名確認 2026-09-07 07:45:13
- NetBeansでTomcatを起動する手順|サーバ登録・ポート・トラブル対処 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Oracle DROP USERでユーザー削除|CASCADE・接続中ユーザーの対処 2026-09-07 07:45:13
- SQLとは|DDL・DMLとリレーショナルデータベース操作の基本 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?