カテゴリ: CSS 更新日: 2026/03/23

CSSのフレックスボックスで使うgapの使い方を完全ガイド!初心者でもわかる余白調整の基本

gap(旧:margin)を使った余白調整の方法
gap(旧:margin)を使った余白調整の方法

先生と生徒の会話形式で理解しよう

生徒

「フレックスボックスを使うときに、要素同士のすき間を調整する方法ってありますか?」

先生

「要素の余白をつけたいときは、昔はmarginをよく使っていたけれど、今はgapで簡単に設定できますよ。」

生徒

「gapって名前は聞いたことがありますが、どんな場面で使うものなんですか?」

先生

「フレックスボックスで横並びにした要素同士の間隔を、一括で調整したいときにとても便利なんです。では、どんなふうに使うのか、ゆっくり見ていきましょう。」

1. フレックスボックスの余白調整で使うgapとは?

1. フレックスボックスの余白調整で使うgapとは?
1. フレックスボックスの余白調整で使うgapとは?

CSSのflexbox(フレックスボックス)は、Webページの要素を横や縦にきれいに並べるための仕組みです。画像やボタンをきれいに整列させたいときにとても便利です。以前は要素同士のすき間を作るために、margin(マージン)を個別に指定することが一般的でした。しかし、マージンを使うと片側だけ余白が入ったり、細かく指定しないといけなかったりして、初心者には少しややこしく感じやすいものでした。

そこで登場したのが、gap(ギャップ)というプロパティです。gapは「すき間」を意味し、フレックスボックスなどで要素同士の間隔を簡単に設定するための便利な機能です。しかも、親要素に1回指定するだけで全ての子要素の間隔がきれいに整うため、コーディングがとても分かりやすくなります。

例えば、ボタンを3つ横に並べたとき、昔はそれぞれのボタンにmargin-rightなどをつけて調整していました。しかし、gapを使えば親に「gap: 20px;」と1行書くだけで、ボタン同士に等間隔の余白が生まれます。初心者でも扱いやすい、シンプルで失敗の少ない方法です。

2. gapの基本的な使い方(フレックスボックスで活用)

2. gapの基本的な使い方(フレックスボックスで活用)
2. gapの基本的な使い方(フレックスボックスで活用)

gapを使うには、まず親要素にdisplay:flexを指定し、続けてgapを設定します。これだけで子要素同士の間隔が自動的に揃います。まるで定規で測ったように、どの要素も均等な距離で並ぶため、見た目も美しく整います。

例えば、横に並べたいカードを3つ置くとしましょう。それぞれに個別の余白をつけるのではなく、親要素にgapを書くだけでスムーズに整います。このシンプルさは、パソコン操作に慣れていない初心者にとっても理解しやすい特徴です。


<style>
.container {
    display: flex;
    gap: 20px;
}
.box {
    background: #cfe2ff;
    padding: 20px;
    border-radius: 8px;
}
</style>

<div class="container">
    <div class="box">ボックス1</div>
    <div class="box">ボックス2</div>
    <div class="box">ボックス3</div>
</div>
ブラウザ表示

3. gapとmarginの違いを初心者向けに解説

3. gapとmarginの違いを初心者向けに解説
3. gapとmarginの違いを初心者向けに解説

gapとmarginはどちらも余白を作るための道具ですが、役割が少し違います。marginは「要素の外側に空間を作る」ためのものです。要素ごとに個別に指定できるため細かい調整が可能ですが、初心者にとっては少し複雑に感じることもあります。

一方、gapは「要素同士の間隔」だけに作用します。特にフレックスボックスやグリッドレイアウトという配置の仕組みと相性がよく、指定した数値がそのまま子要素同士の距離として反映されます。つまり、全体を揃えたレイアウト作りが簡単になります。

言い換えると、marginが「家具についている脚の長さを調整する」イメージなら、gapは「部屋に家具を並べたときの、家具と家具の間隔を決める」ような感覚です。親から見て子ども同士の間隔を揃えるため、管理しやすく、ページ全体の統一感も出しやすい特徴があります。

4. gapで縦方向と横方向を別々に設定する方法

4. gapで縦方向と横方向を別々に設定する方法
4. gapで縦方向と横方向を別々に設定する方法

gapは通常ひとつの値で間隔を設定しますが、横方向(column-gap)と縦方向(row-gap)を個別に指定することもできます。特にフレックスボックスで折り返し(flex-wrap)を使って複数段に並べるときに便利です。


<style>
.wrap-container {
    display: flex;
    flex-wrap: wrap;
    row-gap: 20px;
    column-gap: 40px;
}
.item {
    background: #e2e3e5;
    padding: 15px;
    border-radius: 6px;
    width: 120px;
}
</style>

<div class="wrap-container">
    <div class="item">アイテム1</div>
    <div class="item">アイテム2</div>
    <div class="item">アイテム3</div>
    <div class="item">アイテム4</div>
    <div class="item">アイテム5</div>
</div>
ブラウザ表示

5. gapが便利な理由を初心者向けにわかりやすく説明

5. gapが便利な理由を初心者向けにわかりやすく説明
5. gapが便利な理由を初心者向けにわかりやすく説明

gapが広く使われる理由のひとつは、コードが読みやすくなることです。Web制作では、後からレイアウトを修正したり、他の人が作ったコードを読むことが多くあります。余白の設定が複雑なmarginばかりだと、どこがどの余白を生んでいるのか分かりづらくなることがあります。

しかしgapなら、親要素にひとつ設定しているだけなので、「ああ、この子要素たちはこれで間隔を空けているんだな」とすぐに理解できます。初心者だけでなく、経験者にとっても管理しやすいというメリットがあります。

また、gapは左右だけでなく上下もまとめて整えられるため、レスポンシブデザインとの相性も良いという特徴があります。スマートフォンとパソコンで表示幅が変わっても、gapで指定した間隔が自然に保たれるため、安定したレイアウトが作りやすくなります。

6. 実際のWebサイトでよく使われるgapの応用例

6. 実際のWebサイトでよく使われるgapの応用例
6. 実際のWebサイトでよく使われるgapの応用例

実際のWeb制作では、カードレイアウトやボタンの横並び、画像ギャラリーなどさまざまな場面でgapが利用されています。特にフレックスボックスと組み合わせると、余白の調整が非常にシンプルになるため、学習初期から積極的に使う人も多いです。

例えば、商品一覧のカードを並べるECサイト、プロフィール画像と名前を横並びにするSNS、ボタンをまとめた操作エリアなど、日常的に目にする多くのWebページがgapを使っています。どれも統一感があり、見た目が整っているのは、こうしたレイアウト技術がうまく使われているからです。

7. 初心者がgapを使うときに気をつけたいポイント

7. 初心者がgapを使うときに気をつけたいポイント
7. 初心者がgapを使うときに気をつけたいポイント

gapは非常に便利ですが、万能というわけではありません。まず、gapは主にフレックスボックスやグリッドレイアウトで使用するため、通常のブロック要素同士の間隔を空けたいときは使えません。その場合はmarginを使用します。

また、親要素がdisplay:flexでないとgapは機能しません。そのため、「gapを指定したのに余白が出ない」というときはdisplayの設定を確認することが大切です。初心者がよくつまずきがちなポイントなので、覚えておくと安心です。

さらに、数値を大きくしすぎると要素同士が離れすぎてレイアウトが崩れることもあります。デザインのバランスを見ながら、自分のページに合った適切な値を探すことが大切です。

8. gapはフレックスボックス学習で最初に覚えるべき便利なプロパティ

8. gapはフレックスボックス学習で最初に覚えるべき便利なプロパティ
8. gapはフレックスボックス学習で最初に覚えるべき便利なプロパティ

フレックスボックスを学ぶとき、まず横並びや中央揃えの方法を覚えますが、その次に必ず役立つのがgapです。操作がシンプルで、見た目にも効果が分かりやすいため、Web制作への理解が一気に深まります。

marginだけでレイアウトを組んでいたときよりも、コード全体がまとまりやすくなるため、長期的にも管理しやすいページを作ることができます。フレックスボックスを使ったデザインが増えている現代のWeb制作において、gapは欠かせない基本スキルと言えるでしょう。

まとめ

まとめ
まとめ

CSSのフレックスボックス(Flexbox)における余白調整の革命児とも言える「gap」プロパティについて、その基本から応用までを詳しく解説してきました。これまでのWeb制作では、要素間のスペースを作るために「margin-right」や「margin-bottom」を個々の子要素に指定し、さらに「最後の子要素だけ余白を打ち消す(:last-child)」といった複雑な処理が必要でした。しかし、gapプロパティの登場により、親要素にたった1行記述するだけで、要素間に完璧な等間隔のスペースを生み出すことが可能になりました。

本記事で学んだ重要なポイントを振り返ると、まずgapは「親要素(display: flexを指定した要素)」に対して設定するものであるという点です。これにより、子要素同士の「間」だけに余白が適用され、外側のレイアウトに影響を与えないクリーンな設計が実現します。また、レスポンシブデザインにおいても、画面サイズに応じて要素が折り返した際の縦方向の余白(row-gap)と横方向の余白(column-gap)を直感的に制御できるため、スマートフォン表示とPC表示の切り替えが非常にスムーズになります。

現代のフロントエンド開発において、Bootstrap 5などのモダンなフレームワークでもgapを活用したユーティリティクラスが標準化されています。これからWebデザインやコーディングを志す初心者の方にとって、gapをマスターすることは、効率的でメンテナンス性の高いコードを書くための第一歩です。marginとの使い分けを理解し、適切な場面でgapを選択できるようになれば、レイアウト崩れに悩まされることも激減するでしょう。

実践的なgapの活用例:カードレイアウトの構築

ここでは、実際のWebサイトで非常によく使われる「画像付きカードのグリッド配置」を例に、gapプロパティの効果をコードで確認してみましょう。複数のカードを並べる際、上下左右の余白を個別に計算する必要がない利便性を実感してください。


<style>
    .card-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 24px;
        padding: 20px;
        background-color: #f8f9fa;
    }
    .custom-card {
        flex: 1 1 200px;
        background: #ffffff;
        border: 1px solid #dee2e6;
        border-radius: 10px;
        overflow: hidden;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }
    .card-img {
        width: 100%;
        height: 100px;
        object-fit: cover;
    }
    .card-body {
        padding: 15px;
        text-align: center;
    }
</style>

<div class="card-grid">
    <div class="custom-card">
        <img src="/img/sample150-100.jpg" alt="サンプル1" class="card-img">
        <div class="card-body">カード 1</div>
    </div>
    <div class="custom-card">
        <img src="/img/sample150-100.jpg" alt="サンプル2" class="card-img">
        <div class="card-body">カード 2</div>
    </div>
    <div class="custom-card">
        <img src="/img/sample150-100.jpg" alt="サンプル3" class="card-img">
        <div class="card-body">カード 3</div>
    </div>
</div>
ブラウザ表示

上記のコードでは、親要素である「card-grid」に「gap: 24px;」を指定しています。これにより、カードが横に並んでいるときも、画面幅が狭まって縦に並んだときも、常に24pxの一定した間隔が保たれます。これがmarginを使った古い手法であれば、右側の余白が親要素を突き破ってしまったり、下の余白が余分に付いてしまったりと、多くの微調整が必要でした。gapがいかに強力な味方であるかが分かります。

SEOとユーザビリティの観点から見たgap

検索エンジン最適化(SEO)の観点からも、gapの使用は間接的にポジティブな影響を与えます。Googleの「Core Web Vitals」では、ページレイアウトの安定性(CLS: Cumulative Layout Shift)が重視されます。gapを使った一貫性のある余白設定は、ブラウザがレンダリングする際の計算を簡素化し、予期せぬレイアウトのズレを防ぐ一助となります。また、コードが簡潔になることでHTML/CSSのファイルサイズが軽量化され、ページの読み込み速度向上にも寄与します。

さらに、適切な余白は「情報の読みやすさ(アクセシビリティ)」に直結します。要素が密集しすぎているサイトはユーザーにストレスを与え、離脱率を高める原因となります。gapを適切に使いこなすことで、視覚的に心地よいリズムを持ったWebサイトを構築でき、それが結果としてユーザーの滞在時間向上や検索順位の安定へと繋がっていくのです。

先生と生徒の振り返り会話

生徒

先生、ありがとうございました!gapを使うと、今までmarginで苦労して計算していたのが嘘みたいに簡単になりますね。特に「最後の子要素だけmarginを消す」という作業がいらなくなるのが、本当に画期的です!

先生

その通りですね。gapの最大の利点は、要素の「外側」ではなく「内側のすき間」だけを管理できる点にあります。これによって、コンテナ全体のサイズ計算が狂わなくなるんですよ。実際にコードを書いてみて、何か気づいたことはありますか?

生徒

はい!flex-directionをcolumn(縦並び)に変えたときも、gapの設定がそのまま縦の余白として機能したので驚きました。今まではmargin-bottomを付け替えないといけなかったのに、gapならプロパティを一つ変えるだけでレイアウトが成立しちゃうんですね。

先生

素晴らしい気づきです!それが「論理的な余白設定」の強みです。ちなみに、最近ではflexboxだけでなく、CSS Gridでも同じgapプロパティが使えます。基本は同じなので、一度覚えてしまえばWeb制作のあらゆる場面で応用が効きますよ。

生徒

なるほど、CSS Gridでも使えるんですね。これからは、まずは親要素にdisplay: flexとgapを指定する癖をつけて、どうしても個別に調整したいときだけmarginを使うようにしてみます。コーディングがもっと楽しくなりそうです!

2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapツールチップ・ポップオーバーをきれいに配置する完全ガイド|placementと自動配置をやさしく解説
New2
CSS
CSSで文字の太さを自由に変えよう!初心者向けフォントウェイト完全ガイド
New3
Bootstrap
Bootstrap 5.3のCDNリンク完全ガイド!初心者向けCSS・JS・アイコンのIntegrity一覧
New4
CSS
CSSのfocus-withinを完全ガイド!フォーム周辺をオシャレに変える方法
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
CSS
CSSのダブルボーダーや点線・破線を完全ガイド!初心者でもわかるdotted・dashed・doubleの使い方
No.3
Java&Spring記事人気No3
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点
No.4
Java&Spring記事人気No4
HTML
HTML iframeタグの使い方|外部ページ埋め込みの基本を初心者向けに解説
No.5
Java&Spring記事人気No5
Bootstrap
Bootstrap 5ボタン入門:.btn・.btn-primaryの種類とサイズ・形を初心者向けに完全解説
No.6
Java&Spring記事人気No6
CSS
CSSのスクロール可能なボックスを作る方法!初心者でもわかるoverflowとheightの使い方
No.7
Java&Spring記事人気No7
Bootstrap
ASP.NET/BlazorでのBootstrap 5設定方法を完全ガイド!初心者向けレイアウトと静的ファイル管理
No.8
Java&Spring記事人気No8
CSS
CSSグリッドレイアウト完全入門!display: grid の基本と使い方を初心者向けにやさしく解説