CSS Flexbox入門:横並びレイアウトを自由に操る基本
- #CSS
 - #Flexbox
 - #レイアウト
 - #初心者向け
 - #Webデザイン
 
CSS Flexbox入門:横並びレイアウトを自由に操る基本
導入
Webサイトで要素を「横並び」に配置したいとき、昔はfloatやinline-blockを使っていました。しかし現在では、Flexbox(フレックスボックス)が主流です。Flexboxを理解すれば、カードレイアウトやナビゲーションなどをシンプルなCSSだけで美しく整列できます。本記事では、初心者でも迷わないように、Flexboxの基本を段階的に学びましょう。
前提条件
- HTMLとCSSの基本的な知識(タグやクラスが分かる程度)
 - コードエディタ(VS Codeなど)
 - 任意でブラウザの開発者ツールを使って動作確認ができる環境
 
ステップ1:Flexboxを有効にする
Flexboxは、親要素にdisplay: flex;を指定することで有効になります。
<div class="container">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
.container {
  display: flex; /* Flexboxを有効化 */
}
.item {
  background: #d0e7ff;
  padding: 16px;
  margin: 4px;
}
この状態で、3つのボックスが横並びになります。Flexboxの基本は「親がルールを決め、子がそれに従って並ぶ」構造です。
ステップ2:並び方を調整する(justify-content)
justify-contentプロパティで、要素の横方向の配置を調整できます。
.container {
  display: flex;
  justify-content: space-between; /* 両端揃え */
}
| 値 | 意味 | 
|---|---|
flex-start | 左寄せ(初期値) | 
center | 中央揃え | 
space-between | 両端に均等配置 | 
space-around | 周囲に均等な余白 | 
space-evenly | 要素間と外側に均等な間隔 | 
ステップ3:縦方向の位置を調整する(align-items)
align-itemsは、縦方向の整列を制御します。
.container {
  display: flex;
  align-items: center; /* 縦方向中央揃え */
  height: 200px;
}
| 値 | 意味 | 
|---|---|
flex-start | 上寄せ | 
center | 中央揃え | 
flex-end | 下寄せ | 
stretch | 高さを自動調整して均等化 | 
ステップ4:折り返しを設定する(flex-wrap)
要素が多い場合、1行に収まりきらないときは折り返すことができます。
.container {
  display: flex;
  flex-wrap: wrap; /* 折り返しを許可 */
}
.item {
  width: 30%;
}
これで、カード型レイアウトなどを自然に並べられます。
ベストプラクティス
- Flexboxは**1次元レイアウト(横または縦)**に最適。複雑な2次元配置(縦×横)はGridの方が向いています。
 - 要素間の間隔は
gapプロパティを使うとシンプルに設定できます。 
.container {
  gap: 16px;
}
- スマホ対応では、
flex-direction: column;で縦並びに切り替えましょう。 
@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }
}
よくある質問
Q. justify-contentとalign-itemsの違いは?
A. 横方向を揃えるのがjustify-content、縦方向を揃えるのがalign-itemsです。
Q. flex: 1ってよく見るけど何?
A. 要素の伸縮を指定するショートハンドです。flex: 1は「均等に幅を分ける」設定です。
Q. GridとFlexboxはどちらを使うべき?
A. 単純な横並びや中央寄せはFlexboxが向いており、複雑なレイアウトや段組にはGridが適しています。
まとめ
Flexboxは、**「横並びを簡単に」**実現できる強力なCSSレイアウト手法です。ポイントは次の3つです。
display: flex;で有効化する。justify-contentで横方向を整える。align-itemsで縦方向を整える。
次のステップとして、Gridレイアウトを学ぶとさらに自由なデザインが可能になります。ぜひ、Flexboxを使って自分のポートフォリオサイトを整えてみましょう。