CSS

Flexbox

初級

読み方:フレックスボックス|英語:Flexbox

要素を横並び・縦並びにするレイアウト方法で、親要素に display: flex を指定するよ。いつ使う? ナビゲーションメニューを横並びにしたい、カードを等間隔に並べたい、要素を上下左右中央に配置したいときに使うよ。間違いやすいポイント: display: flex は「親要素」に書くよ。子要素に書いても横並びにならないよ。また、justify-content(主軸)とalign-items(交差軸)の方向を混同しやすいから注意しよう。

やさしい説明

Flexbox(フレックスボックス)とは、要素を横並びや中央揃えにするCSSレイアウト方法です。

本棚に本を並べるイメージです。親要素(本棚)に display: flex を指定すると、子要素(本)が自動で横に並びます。

横方向の配置は justify-content、縦方向の配置は align-items で制御します。「上下左右ど真ん中」も簡単に実現できます。

1次元(横一列 or 縦一列)のレイアウトに向いています。格子状に並べたい場合はGridを使います。

図解:Flexboxの仕組み

Flexboxの主軸と交差軸の図解

具体例・使い方

/* 横並び+中央揃え */
.nav {
  display: flex;
  justify-content: center; /* 横方向中央 */
  align-items: center;     /* 縦方向中央 */
  gap: 16px;               /* 要素間の隙間 */
}

/* 両端揃え(ロゴ左、メニュー右) */
.header {
  display: flex;
  justify-content: space-between;
}

いつ使う?

ナビゲーションメニューを横並びにするとき、要素を上下左右中央に配置するとき、カードを横に並べるときに使います。現代のWebレイアウトの基本です。

間違いやすいポイント

❌ 子要素にdisplay: flexを書いてしまう

/* ❌ 並べたい要素自体に書いても効かない */
.item { display: flex; }

/* ✅ 親要素に書く */
.container { display: flex; }

display: flex は「並べたい要素の親」に指定します。子要素自体ではありません。

よくある疑問

Q: FlexboxとGridの違いは?

A: Flexboxは1方向(横or縦)のレイアウト、Gridは2方向(横と縦)のレイアウトに向いています。ナビバーはFlex、カード一覧はGridが適しています。

Q: 要素を中央に配置するには?

A: 親要素に display: flex; justify-content: center; align-items: center; の3つを指定します。これで上下左右中央に配置できます。

Q: flex: 1 とは?

A: 子要素に flex: 1; を指定すると、余ったスペースを均等に分け合います。2つの子要素に flex: 1 を指定すると半分ずつになります。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A