ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?