CSS ・ Flexbox・Grid

align-items

交差軸方向の配置

Flexbox や Grid で、子要素を交差軸方向(横並びのときは縦方向)にどう揃えるかを指定します。

初期値
normal(flex では stretch と同じ)
適用対象
フレックスコンテナ・グリッドコンテナ
継承
しない
01

サンプルコード

HTML
1<div class="flex">
2 <div class="item">短い</div>
3 <div class="item tall">背の高い<br>アイテム<br>です</div>
4 <div class="item">短い</div>
5</div>
CSS
1.flex {
2 display: flex;
3 align-items: center;
4 gap: 8px;
5 height: 120px;
6 background: #f5efe6;
7}
8.item {
9 padding: 8px 14px;
10 background: #b68235;
11 color: #fff;
12}
02

実行結果

ブラウザでの表示
03

解説

align-items は、並んだ子要素を交差軸方向に揃えるプロパティです。横並び(row)のときは縦方向の揃え方になります。

上の例では center を指定し、高さの違うアイテムを上下中央に揃えています。初期値の stretch では、アイテムが親の高さいっぱいまで伸びます。

justify-content(主軸方向)と組み合わせると、要素を上下左右の中央に置けます。

04

応用例・注意点

指定できる値

値説明
stretch親の高さいっぱいに伸ばす(flex の既定の動き)
flex-start / start上揃え(横並びのとき)
center中央揃え
flex-end / end下揃え
baseline文字のベースラインで揃える

アイコンと文字の高さをそろえる

横に並べたアイコンと文字を、上下中央に揃える定番の書き方です。

HTML
1<p class="with-icon"><svg width="16" height="16">…</svg>お知らせ</p>
CSS
1.with-icon {
2 display: flex;
3 align-items: center;
4 gap: 6px;
5}

注意点

  1. 01align-items は親要素に書きます。1つのアイテムだけ揃え方を変えるには、子要素に align-self を指定します。
  2. 02親の高さがアイテムと同じだと、揃え方を変えても見た目は変わりません。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉