Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
- トップページ
- CSSプロパティ辞典
- justify-content
justify-content
フレックスコンテナの主軸方向におけるアイテムの配置方法を指定します。アイテム間やコンテナとの間にどのようにスペースを分配するかを制御できます。
サンプルコード
/* 先頭に寄せる(初期値) */
.container { display: flex; justify-content: flex-start;}
/* 中央に寄せる */
.container-center { display: flex; justify-content: center;}
/* 末尾に寄せる */
.container-end { display: flex; justify-content: flex-end;}
/* 均等配置(両端に寄せる) */
.container-between { display: flex; justify-content: space-between;}
/* 均等配置(等間隔) */
.container-around { display: flex; justify-content: space-around;}
/* 均等配置(完全等間隔) */
.container-evenly { display: flex; justify-content: space-evenly;}
指定可能な値一覧
| 値 | 概要 |
|---|---|
| flex-start | アイテムを主軸の先頭に寄せて配置します。初期値です。 |
| flex-end | アイテムを主軸の末尾に寄せて配置します。 |
| center | アイテムを主軸の中央に配置します。 |
| space-between | 最初のアイテムは先頭、最後のアイテムは末尾に配置し、残りのアイテムを均等に配置します。 |
| space-around | 各アイテムの両側に均等な余白をつけて配置します。アイテム間の間隔は両端の2倍になります。 |
| space-evenly | すべてのアイテム間と両端の間隔を完全に均等にして配置します。 |
仕様情報
| 項目 | 内容 |
|---|---|
| 初期値 | flex-start |
| 適用対象 | フレックスコンテナ(『display: flex』または『display: inline-flex』が指定された要素) |
| 継承 | しない |
| アニメーション | 不可(discrete) |
対応ブラウザ
28 △
27 △
26 △
25 △
24 △
23 △
22 △
21 △
20 以前 ×
19 以前 ×
7 △
6 以前 ×
8 ×
7 ×
6 ×
11 以前 ×
7 △
6 以前 ×
Android Browser
4.4 以降 ○
3 以前 ×概要
『justify-content』はFlexboxレイアウトで最も頻繁に使用されるプロパティの一つです。主軸方向(『flex-direction: row』なら横方向、『column』なら縦方向)にアイテムをどのように配置するかを制御します。
各値の配置イメージ
flex-start(初期値)
アイテムを主軸の先頭に寄せて配置します。『flex-direction: row』の場合は左寄せ、『column』の場合は上寄せになります。初期値なので、特に指定しなくてもこの動作になります。
center
すべてのアイテムを主軸の中央に配置します。ナビゲーションメニューの中央揃えや、要素の中央配置に頻繁に使われます。『align-items: center』と組み合わせることで上下左右の完全な中央配置が実現できます。
/* 上下左右の完全中央配置 */
.center-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
space-between
最初のアイテムはコンテナの先頭、最後のアイテムはコンテナの末尾に配置され、残りのアイテムは均等な間隔で配置されます。ヘッダーのロゴとナビゲーションを両端に配置する場合などに最適です。
/* ロゴを左、ナビゲーションを右に配置 */
.header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20px;
}
space-around と space-evenly の違い
『space-around』は各アイテムの「両側」に均等な余白を付けるため、アイテム間の間隔は両端の間隔の2倍になります。一方『space-evenly』はすべての間隔(両端を含む)を完全に等しくします。
『flex-direction: column』での注意点
『flex-direction: column』で『justify-content』を使う場合、コンテナに明示的な『height』が必要です。高さが指定されていないと、コンテナの高さがアイテムの合計と同じになるため、スペースを分配する余地がありません。
/* NG: heightがないので効かない */
.ng {
display: flex;
flex-direction: column;
justify-content: center;
}
/* OK: heightを指定すると効く */
.ok {
display: flex;
flex-direction: column;
justify-content: center;
height: 100vh;
}
関連プロパティ
| プロパティ | 概要 |
|---|---|
| align-items | 交差軸方向のアイテム配置を制御します。『justify-content』と組み合わせて上下左右の配置を指定できます。 |
| align-content | 複数行の場合の行間配置を制御します。『justify-content』の交差軸版です。 |
| flex-direction | 主軸の方向を指定します。『justify-content』が効く方向はこのプロパティの値によって変わります。 |
| gap | アイテム間の間隔を直接指定します。『space-between』等のように余白を自動分配するのではなく、固定値の間隔を設定できます。 |
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。