D
DigiSchool
コース一覧カテゴリブログ
ログイン無料で始める
D
DigiSchool

デジタルマーケティングとWeb制作のスキルを身につけて、キャリアを加速させましょう。

カテゴリ

AIWebデザイン広告運用SEOMEOLP制作HP制作SaaSECデザイン

サービス

  • コース一覧
  • カテゴリ一覧
  • ブログ
  • 無料会員登録

サポート

  • 利用規約
  • プライバシーポリシー

© 2026 DigiSchool. All rights reserved.

コース/HTML/CSSコーディング入門/Flexboxレイアウト
6 / 10
レッスン 6
30分

Flexboxレイアウト

📝 最後に理解度チェック(3問)があります
▶

解説動画は無料登録で視聴できます

全26コース・260レッスンが完全無料。登録は1分、クレジットカードは不要です

無料登録して動画を見るアカウントをお持ちの方はログイン

Flexbox — display:flex・justify/align・grow/shrink/basis・実践パターン5選

CSS Flexbox(フレックスボックス)は、1次元のレイアウト(横または縦方向への要素配置)を直感的かつ強力に実現するレイアウトモジュールです。Flexbox 以前は float や position を複雑に組み合わせる必要があった「垂直中央揃え」「均等配置」「可変幅カラム」が、わずか数行の CSS で実現できます。このレッスンでは Flexbox の基本的な仕組み、主要プロパティの使い方、そして現場で繰り返し使われる5つの実践パターンを習得します。


Flexboxの基本概念

Flexboxの主要プロパティと実践パターン5選Flexboxの主要プロパティと実践パターン5選

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 には2つの軸があります。

  • ◆主軸(Main Axis): アイテムが並ぶ方向(デフォルトは横方向)
  • ◆交差軸(Cross Axis): 主軸に対して垂直な方向(デフォルトは縦方向)

コンテナに設定するプロパティ

flex-direction — 並ぶ方向

値並ぶ方向
row(デフォルト)左から右へ横並び
row-reverse右から左へ横並び
column上から下へ縦並び
column-reverse下から上へ縦並び
.container { display: flex; flex-direction: column; }

justify-content — 主軸方向の揃え

値挙動
flex-start主軸の始点に揃える(デフォルト)
flex-end主軸の終点に揃える
center中央に揃える
space-between両端に配置し、残りを均等分割
space-around各要素の左右に均等な余白
space-evenlyすべての間隔を均等に

align-items — 交差軸方向の揃え

値挙動
stretch(デフォルト)交差軸方向に伸縮する
flex-start交差軸の始点に揃える
flex-end交差軸の終点に揃える
center交差軸の中央に揃える
baselineテキストのベースラインで揃える

flex-wrap — 折り返し

.container { flex-wrap: wrap; }  /* 幅に収まらない場合に折り返す */

デフォルトの nowrap では、アイテムが圧縮されても折り返しません。カードグリッドなど複数行になるレイアウトでは flex-wrap: wrap が必須です。

gap — アイテム間の余白

.container { gap: 16px; }           /* 縦横両方 */
.container { gap: 12px 24px; }      /* 縦 | 横 */
.container { row-gap: 12px; column-gap: 24px; }  /* 個別 */

margin でアイテム間の余白を設定するよりもシンプルで、最初・最後のアイテムに余分な余白が生まれないため推奨です。

💡 justify-content と align-items の軸の覚え方: justify が主軸(row なら横)、align が交差軸(row なら縦)です。「j は horizontal の h に似てるから横」と覚える方法もあります。


アイテムに設定するプロパティ

flex-grow — 余白を埋めて伸びる割合

コンテナに余白がある場合、アイテムがどの割合で伸びるかを指定します。

.item-a { flex-grow: 1; }  /* 余白の1/3を取得 */
.item-b { flex-grow: 2; }  /* 余白の2/3を取得 */
.fixed   { flex-grow: 0; }  /* 伸びない(デフォルト) */

flex-shrink — コンテナが狭い時に縮む割合

コンテナが狭くなった場合、アイテムがどの割合で縮むかを指定します。デフォルトは 1(縮む)。

.sidebar { flex-shrink: 0; }  /* サイドバーは縮まない */
.main    { flex-shrink: 1; }  /* メインは縮む(デフォルト) */

flex-basis — 初期サイズ

伸縮前の基本サイズを指定します。width に似ていますが、flex-direction: column の場合は height と同じ意味になります。

.item { flex-basis: 200px; }  /* 初期幅200px */
.item { flex-basis: auto; }   /* contentサイズが初期値(デフォルト) */

flex ショートハンド

flex: grow shrink basis の順で一括指定します。

.item { flex: 1; }           /* flex: 1 1 0% と同じ。均等伸縮 */
.item { flex: 0 0 200px; }   /* 固定幅200px。伸縮しない */
.item { flex: auto; }        /* flex: 1 1 auto と同じ */
.item { flex: none; }        /* flex: 0 0 auto。完全固定 */

align-self — 個別の交差軸揃え

align-items はコンテナ全体への設定ですが、align-self はアイテム個別に上書きできます。

.special { align-self: flex-end; }  /* このアイテムだけ下揃え */

⚠️ flex: 1 は flex-basis: 0% に注意: flex: 1 は flex: 1 1 0% の略で、初期サイズを0から均等に分配します。コンテンツサイズを初期値にしたい場合は flex: 1 1 auto を使ってください。


実践パターン5選

パターン1: 上下左右中央揃え

最も頻繁に使うパターンです。モーダルの中身、アイコンの中央配置などに使います。

.center-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;  /* 高さが必要 */
}

パターン2: ナビゲーションバー(ロゴ左 / メニュー右)

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  height: 64px;
}

パターン3: 均等幅カードグリッド

.card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.card {
  flex: 0 0 calc(33.333% - 16px);  /* 3列 */
}

画面幅が変わっても calc で計算された幅を維持します。レスポンシブ対応は media query で列数を変えます。

パターン4: サイドバー + メインコンテンツ

.layout {
  display: flex;
  gap: 24px;
}
.sidebar {
  flex: 0 0 250px;  /* 固定幅250px */
}
.main-content {
  flex: 1;  /* 残りの幅をすべて使う */
}

パターン5: フッターを常に下に固定

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
main {
  flex: 1;  /* コンテンツが少なくてもmainが伸びてフッターを下に押す */
}
footer {
  flex-shrink: 0;
}

💡 Flexbox と Grid の使い分け: Flexbox は1次元(横か縦)のレイアウトに最適です。2次元(縦横同時)のグリッドレイアウトには CSS Grid を使いましょう。「1行のナビ → Flex、ページ全体のグリッド → Grid」が基本指針です。


🏋️実践ワーク

以下のワークを実施してください。

  1. ◆中央揃えの実装: width: 300px; height: 200px の要素を画面の上下左右中央に配置してください。justify-content と align-items の組み合わせで実現します。
  2. ◆ナビバーの作成: ロゴ(左端)と3つのメニュー項目(右端)を持つナビゲーションバーを Flexbox で実装してください。
  3. ◆3カラムカードグリッド: 9枚のカードを3列×3行に並べ、flex-wrap: wrap と calc を使って実装してください。画面幅 768px 以下では1列になるよう media query も追加してください。
  4. ◆サイドバーレイアウト: 左250px固定のサイドバーと残り全幅のメインエリアを flex: 0 0 250px と flex: 1 で実装してください。

📝まとめ

Flexbox は display: flex をコンテナに設定するだけで子要素を横並びにできる強力なレイアウト手法です。justify-content で主軸方向、align-items で交差軸方向の揃えを制御します。アイテム側では flex: grow shrink basis のショートハンドで伸縮と初期幅を指定します。特に flex: 1 で均等伸縮、flex: 0 0 固定幅 で固定幅を実現するパターンは頻出です。gap プロパティで余白を設定し、flex-wrap: wrap で折り返しを有効にすることで柔軟なグリッドレイアウトも構築できます。次のレッスンではレスポンシブデザインのための media query を学びます。

理解度チェック

3問

全問正解でこのレッスンが「完了」になり、コースの全レッスンを完了すると修了証が発行されます。解説つき・何度でも挑戦できます。

  1. Q1.flex-direction: rowのコンテナで、アイテムを縦方向の中央に揃えたい。使うべき指定はどれですか。

  2. Q2.左に250px固定のサイドバー、右に残り幅すべてのメインエリアを作ります。適切な指定はどれですか。

  3. Q3.カードを複数行に並べたいのに、1行に押し込まれて縮んでしまいます。コンテナに追加すべき指定はどれですか。

すべての問題に答えると押せます

「HTML/CSSコーディング入門」全10レッスンを無料で修了しよう

  • ✓ 理解度チェックの採点と、合格レッスンの記録
  • ✓ 全レッスン合格で修了証を発行(URLでシェア・LinkedInに追加できます)
  • ✓ 全レッスンの解説動画と、続きから再開できる学習ダッシュボード
無料で受講をはじめる(1分)

完全無料・クレジットカード不要

関連するブログ記事

WordPressセキュリティ対策ガイド|ハッキング・不正ログインを防ぐ方法

WordPressセキュリティ対策ガイド|ハッキング・不正ログインを防ぐ方法

Flexboxレイアウト完全ガイド|CSS初心者でもわかる実践テクニック

Flexboxレイアウト完全ガイド|CSS初心者でもわかる実践テクニック

WordPress入門|初心者がホームページを自作する完全ロードマップ

WordPress入門|初心者がホームページを自作する完全ロードマップ

関連レッスン(他のコースから)

実践Webデザイン - Figma完全マスター講座

Auto Layoutで効率的なレイアウト

Auto LayoutはFigmaが他のデザインツールと一線を画す最大の機能です。

30分本文は無料で閲覧可

デザイン基礎 - 視覚コミュニケーション入門

レイアウトとグリッドシステム

レイアウトはデザインの「骨格」です。

35分本文は無料で閲覧可

WordPress HP制作完全講座

ホームページの役割と企画

ホームページ(HP)を作る前に最も重要なのが「なぜ作るのか」という目的の明確化です。

30分無料公開

WordPress HP制作完全講座

サーバー・ドメインの選び方

WordPressでHPを公開するには、サーバー(サイトのデータを保存・配信する場所) と ドメイン(サイトのアドレス) の2つが必要です。

30分無料公開

WordPress HP制作完全講座

WordPressインストールと初期設定

サーバーとドメインの準備が整ったら、いよいよWordPressのインストールです。

30分無料公開

WordPress HP制作完全講座

テーマ選びとカスタマイズ

WordPressのテーマはサイトの「外観と機能の土台」です。

30分本文は無料で閲覧可

← 前のレッスン
次のレッスン →

レッスン一覧

各レッスンの理解度チェックに合格すると ✓ がつきます

1Web制作の全体像2HTMLの基本タグ3テキスト・リスト・リンク・画像4CSSの基本5ボックスモデルとレイアウト6Flexboxレイアウト7レスポンシブデザイン8実践 - ヘッダー・ナビ制作9実践 - カード・グリッド制作10実践 - 1ページサイト完成