CSS ・ 文字・フォント

vertical-align

縦方向の揃え位置

行の中に並ぶインライン要素や、表のセルの中身を、縦方向のどこに揃えるかを指定します。

初期値
baseline
適用対象
インライン要素・表のセル
継承
しない
01

サンプルコード

HTML
1<p>
2 <span class="big">大</span>
3 <span class="icon top"></span>top
4 <span class="icon middle"></span>middle
5 <span class="icon bottom"></span>bottom
6</p>
CSS
1p {
2 font-size: 16px;
3 background: #f6ead8;
4 padding: 8px;
5}
6.big {
7 font-size: 48px;
8}
9.icon {
10 display: inline-block;
11 width: 24px;
12 height: 24px;
13 background: #b68235;
14}
15.top {
16 vertical-align: top;
17}
18.middle {
19 vertical-align: middle;
20}
21.bottom {
22 vertical-align: bottom;
23}
02

実行結果

ブラウザでの表示茶色の四角(inline-block)を、大きな文字で高くなった行の上・中央・下に揃えています
03

解説

vertical-align は、同じ行に並んだインライン要素(文字・画像・inline-block の要素など)を、縦方向のどこに揃えるかを指定します。

上の例では、大きな文字で高くなった行の中で、小さな画像を上(top)・中央(middle)・下(bottom)に揃えています。

表のセル(td・th)に指定すると、セルの中身を上・中央・下のどこに置くかを決められます。

ブロック要素(div など)には効きません。ボックスの中身を縦に中央揃えしたいときは、Flexbox の align-items: center を使います。

04

応用例・注意点

指定できる値

値説明
baseline文字の基準線に揃える(初期値)
top行の一番上に揃える
middle行の中央に揃える
bottom行の一番下に揃える
text-top / text-bottom親の文字の上端 / 下端に揃える

画像の下にできるすき間を消す

img は文字と同じ基準線に揃うため、下に少しすき間ができます。vertical-align を変えると消えます。

CSS
1img {
2 vertical-align: bottom;
3}

表のセルを上揃えにする

セルの中身は初期値で縦中央になります。上に揃えたいときに指定します。

CSS
1td {
2 vertical-align: top;
3}

注意点

  1. 01div などのブロック要素の中身を縦中央にする目的では効きません(Flexbox・Grid を使います)。
  2. 02text-align は横方向、vertical-align は縦方向の揃えです。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉