Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

CSSプロパティ辞典

align-content

フレックスコンテナ内で複数行になった場合の、行と行の間隔や配置を指定します。『flex-wrap: wrap』で折り返しが発生した場合にのみ効果があります。

サンプルコード
/* 行をコンテナいっぱいに伸ばす(初期値) */
.container { display: flex; flex-wrap: wrap; align-content: stretch;}

/* 行を上に寄せる */
.container-start { display: flex; flex-wrap: wrap; align-content: flex-start;}

/* 行を中央に寄せる */
.container-center { display: flex; flex-wrap: wrap; align-content: center;}

/* 行を均等配置 */
.container-between { display: flex; flex-wrap: wrap; align-content: space-between;}
指定可能な値一覧
概要
stretch各行をコンテナの交差軸方向いっぱいに伸ばして配置します。初期値です。
flex-start行を交差軸の先頭に寄せて配置します。
flex-end行を交差軸の末尾に寄せて配置します。
center行を交差軸の中央に配置します。
space-between最初の行は先頭、最後の行は末尾に配置し、残りを均等に配置します。
space-around各行の両側に均等な余白をつけて配置します。
space-evenlyすべての行間と両端の間隔を完全に均等にして配置します。
仕様情報
項目内容
初期値stretch
適用対象複数行のフレックスコンテナ(『flex-wrap: wrap』が指定された要素)
継承しない
アニメーション不可(discrete)
対応ブラウザ
Chrome Chrome
29 以降
28
27
26
25
24
23
22
21
↑ prefix『-webkit-』が必要
20 以前 ×
Firefox Firefox
28 以降
27 以前 ×
Safari Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Edge Edge
12 以降
全バージョンで対応しています
IE IE
11
10 ×
9 ×
8 ×
7 ×
6 ×
Opera Opera
16 以降
15
↑ prefix『-webkit-』が必要
14 以前 ×
iOS Safari iOS Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Android Android Browser
4.4 以降
3 以前 ×
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN / Can I Use に基づいています。

概要

『align-content』はフレックスコンテナに指定するプロパティで、複数行(『flex-wrap: wrap』を指定して折り返しが発生した状態)における行全体の交差軸方向の配置を制御します。一行のみの場合(『flex-wrap: nowrap』)は効果がありません。

各値の配置イメージ

flex-start center space-between align-items = 行の中での揃え A(高い) B C D align-content = 行全体の配置 ↑ 行間の配置を制御

『align-items』との違い

『align-items』は各行の中でアイテムをどう揃えるかを制御し、『align-content』は行そのものをコンテナ内でどう配置するかを制御します。

プロパティ対象効果
align-items行内のアイテム各アイテムの交差軸方向の位置を揃えます。
align-content行全体複数行をコンテナ内でどう配置するかを制御します。
パターン: グリッド風レイアウト

align-content: flex-start で上に詰めたグリッド風 Card 1 Card 2 Card 3 Card 4 Card 5 Card 6 ↑ flex-start: 上に詰まり、下に空きが出る

/* カードを折り返して均等に配置 */
.grid-like {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;  /* 上に詰める */
    gap: 16px;
    height: 500px;
}
.card {
    flex: 0 0 calc(33.333% - 16px);
}
効果がない場合のチェックポイント

『align-content』が効かない場合、以下の3点を確認してください。

1つ目は『flex-wrap: wrap』が指定されているか。『nowrap』(初期値)のままでは行が一つしかないため効果がありません。2つ目はコンテナに交差軸方向のサイズが指定されているか。『flex-direction: row』の場合は『height』が必要です。3つ目は実際に折り返しが発生しているか。アイテムが一行に収まっている場合は効果がありません。

関連プロパティ
プロパティ概要
align-items行内のアイテムの交差軸方向の揃え方を制御します。行全体の配置は『align-content』で行います。
flex-wrap折り返しを制御します。『align-content』は『wrap』で折り返しが発生した場合にのみ効果があります。
justify-content主軸方向のアイテム配置を制御します。『align-content』は交差軸方向の行配置版です。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。