【基本編】CSSで横や縦の並びを指定できるフレックスボックス(flex)とは?使い方を詳しく解説!

CSSの フレックスボックス(flex)とは?
CSSの フレックスボックス(flex)とは?
フレックスボックス(flex)は、複数の要素を並べて表示させることができる要素です。
要素を横や縦に並べることができ、要素同士の間隔や配置を指定できるプロパティが用意されています。
〜 フレックスボックスのイメージ 〜


flexのコードはこんな感じ
CSSでdsplay: flex;と指定すると、フレックスボックスになります。
ブラウザで実行するとこんな感じです。
フレックスボックス内のブロック要素が横並びになりましたね!
ブロック要素は、Webページのまとまり や レイアウトの役割を果たす要素です。
〜 ブロック要素のイメージ 〜

〜 ブロック要素の特徴 〜
ブロック要素は、CSSでdisplay: block;と書くことで指定できます。
〜 ブロック要素の指定方法 〜
セレクタ {
display: block;
その他スタイル...
}
〜 デフォルトがブロック要素となるタグ 〜
- h1〜h6タグ
- pタグ
- divタグ
- sectionタグ
- asideタグ
- articleタグ
- navタグ
- ulタグ
- olタグ
- headerタグ
- footerタグ
- mainタグ
- preタグ
- dlタグ
- dtタグ
- ddタグ
- formタグ
- hrタグ
これらは、displayプロパティの指定によって変えることが可能です。
CSS
プロパティjustify-content|主軸方向(デフォルトは水平)の配置
justify-content の使い方
justify-contentは、フレックスボックス内の要素に対して主軸方向の配置を指定できます。
主軸方向のデフォルトは水平方向です。
CSSでflex-direction: column;を指定することで主軸は垂直方向となります。
値には、center (中央寄せ)・flex-start (左寄せ)・flex-end (右寄せ)などが用意されています。
〜 justify-contentの書き方 〜
セレクタ {
justify-content: 値;
その他スタイル...
}
〜 justify-contentの値の種類 〜
center |
フレックスボックス内の要素を中央へ寄せます。 ![]() |
---|---|
flex-start |
フレックスボックス内の要素を左へ寄せます。 ![]() |
flex-end |
フレックスボックス内の要素を右へ寄せます。 ![]() |
space-between |
フレックスボックス内の要素を等間隔に配置します。 ![]() |
space-evenly |
フレックスボックス内の要素を等間隔に配置します。 ![]() |
space-around |
フレックスボックス内の要素を等間隔に配置します。 ![]() |
フレックスボックス内の要素のことをアイテムと呼びます。
justify-content のコード例
ブラウザで実行すると値によって様々な配置となりました!

CSS
プロパティalign-items|交差軸(デフォルトは垂直)の配置
align-items の使い方
align-itemsは、フレックスボックス内の要素に対して交差軸方向の配置を指定できます。
交差軸のデフォルトは垂直方向です。
CSSでflex-direction: column;を指定することで交差軸は水平方向となります。
値には、center (中央寄せ)・flex-start (上寄せ)・flex-end (下寄せ)などが用意されています。
〜 align-itemsの書き方 〜
セレクタ {
align-items: 値;
その他スタイル...
}
〜 align-itemsの値の種類 〜
stretch |
フレックスボックス内の要素で1番大きな要素の高さに揃います。 ![]() |
---|---|
center |
フレックスボックス内の要素を垂直の中央へ揃えます。 ![]() |
flex-start |
フレックスボックス内の要素を垂直の上へ揃えます。 ![]() |
flex-end |
フレックスボックス内の要素を垂直の下へ揃えます。 ![]() |
フレックスボックス内の要素のことをアイテムと呼びます。
align-items のコード例
ブラウザで実行すると値によって様々な配置となりました!

CSS
プロパティflex-wrap|幅に合わせた折り返しの指定
flex-wrap の使い方
flex-wrapは、フレックスボックス内の要素が はみだす場合、はみだす分の要素を折り返すよう指定ができます。
値には、wrap (折り返す)・no-wrap (折り返さない)などが用意されています。
〜 flex-wrapの書き方 〜
セレクタ {
flex-wrap: 値;
その他スタイル...
}
〜 align-itemsの値の種類 〜
wrap |
フレックスボックス内の要素がフレックスボックスの幅をはみ出すとき、要素を折り返す。 |
---|---|
no-wrap |
フレックスボックス内の要素がフレックスボックスの幅をはみ出しても、要素を折り返さない。 |
flex-wrap のコード例
ブラウザで実行するとこんな感じ

CSS
プロパティgap・column-gap・row-gap|要素同士の間隔を指定
gap・column-gap・row-gap の使い方
gap・column-gap・row-gapは、フレックスボックス内の要素同士の間隔を指定できます。
〜 column-gapとrow-gapのイメージ 〜

〜 gap・column-gap・row-gapの違い 〜
gap |
横と縦方向両方の間隔を指定。 |
---|---|
column-gap |
横方向の間隔を指定。 |
row-gap |
縦方向の間隔を指定。 |
要素1つ1つに margin をつけるより、 gap でまとめて指定した方がプログラムの管理に適しています。
〜 gap・column-gap・row-gapの書き方 〜
セレクタ {
gap: 値 (値2);
その他スタイル...
}
※ (値2)は任意です。
セレクタ {
column-gap: 値;
row-gap: 値;
その他スタイル...
}
〜 gap・column-gap・row-gapの値について 〜
gap: 値; |
フレックスボックス内の要素同士の縦横の間隔を一括で指定できます。 |
---|---|
gap: 値1 値2; |
フレックスボックス内の要素同士の間隔を、縦を値1、横を値2で指定できます。 |
column-gap: 値; |
フレックスボックス内の要素同士の縦のみの間隔を一括で指定できます。 |
row-gap: 値; |
フレックスボックス内の要素同士の横のみの間隔を一括で指定できます。 |
gap はフレックスボックスだけでなくグリッドにも使えます。
グリッドとは、行・列形式のレイアウトを作成できる要素です。
〜 グリッドのイメージ 〜

〜 グリッドの特徴 〜
〜 グリッドの指定方法 〜
セレクタ {
display: grid;
その他スタイル...
}
gap・column-gap・row-gap のコード例
ブラウザで実行するとこんな感じ
