CSSの「gap」とは?初心者でも理解できる使い方

記事
IT・テクノロジー
CSSでレイアウトを作っていると、要素同士の余白をどう作るかで悩むことがあります。
そのときによく使われるのが gap というプロパティです。

この記事では、CSSの gapとは何か、そして marginとの違い、実際の使い方まで整理して解説します。

gapとは

gapは、要素と要素の間の余白をまとめて指定できるCSSプロパティです。

主に次のレイアウトで使います。

・flex
・grid

つまり、並んでいる要素の「間隔」だけを指定するためのプロパティです。

例えば次のようなHTMLがあったとします。

<div class="container">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

これを横並びにして、要素の間を20px空けたい場合はこう書きます。

.container {
  display: flex;
  gap: 20px;
}

これだけで、要素同士の間に20pxの余白ができます。

gapの特徴

gapには大きく3つの特徴があります。

要素同士の「間」だけに余白がつく

gapは、最初と最後の外側には余白がつきません。

例えば3つの要素がある場合

[要素][要素][要素]

gapを20pxにすると

[要素] 20px [要素] 20px [要素]

このように 要素の間だけに余白ができます。

まとめて余白を管理できる

marginで余白を作る場合、すべての要素に指定する必要があります。


.box {
  margin-right: 20px;
}

しかしこれだと 最後の要素にも余白がつく という問題が起きます。

そのため

.box:last-child {
  margin-right: 0;
}

のような調整が必要になります。

gapを使えば

.container {
  display: flex;
  gap: 20px;
}

これだけで解決します。

レイアウトがシンプルになる

gapは「コンテナ側」に書くため、
子要素に余計なCSSを書かなくて済むというメリットがあります。

結果として

・CSSが読みやすくなる
・メンテナンスしやすくなる
・レイアウトが崩れにくくなる

という利点があります。

gapは縦横で指定できる

gapは、縦と横を別々に指定することもできます。

gap: 縦 横;


.container {
  display: grid;
  gap: 20px 40px;
}

この場合

縦の間隔:20px
横の間隔:40px

になります。

row-gap と column-gap

gapは、次のように個別指定も可能です。

row-gap: 20px;
column-gap: 40px;

意味は次の通りです。

row-gap
→ 縦の余白

column-gap
→ 横の余白

gridレイアウトでは特によく使われます。

まとめ

gapは、要素同士の間隔を簡単に作るためのCSSプロパティです。

主なポイントは次の通りです。

・flexやgridで使う
・要素同士の間だけ余白がつく
・marginより管理が簡単
・縦横を別々に指定できる

最近のCSSでは marginよりgapを使うケースがかなり増えています。

レイアウトをシンプルに保つためにも、flexやgridを使うときは まずgapを使う癖をつけると良いでしょう。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら