CSSのgapプロパティで要素の間隔を自在にコントロールする
CSSのgapプロパティは、FlexboxやGridレイアウトで要素間のすき間(スペース)を簡単に設定できる便利なプロパティです。
これまでのようにmarginで調整する必要がなく、レイアウトがシンプルになります。
1 gapとは?
gapは、FlexboxやGridで子要素同士の間隔を指定するためのプロパティです。
もともとはGrid専用でしたが、現在ではFlexboxでもサポートされています。
| プロパティ | 説明 |
|---|---|
gap |
横・縦の両方の間隔をまとめて指定 |
column-gap |
横方向の間隔だけ指定 |
row-gap |
縦方向の間隔だけ指定 |
2 基本構文
.gap-grid {
display: flex; /* または grid */
gap: 20px; /* 要素間のすき間を20pxに */
}
3 サンプルコード
Flexboxでカードを並べる例です。
<div class="gap-grid">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
/* -------------------
* CSSのgapプロパティ
* ----------------- */
.gap-grid {
display: flex; /** Flexboxレイアウト **/
justify-content: center; /** 中央寄せ **/
gap: 20px; /** 要素間のすき間を20pxに設定 **/
background: #f0fff0; /** 淡いグリーン背景 **/
padding: 30px; /** 全体の余白 **/
}
.gap-grid .item {
background: #66bb6a; /** 緑のカード **/
color: #fff; /** 白文字 **/
padding: 20px 30px; /** 内側余白 **/
border-radius: 8px; /** 角を丸く **/
font-weight: bold; /** 太字 **/
}
4 2つの値で指定する
gapには、2つの値を設定することで縦と横のすき間を別々に指定できます。
.gap-grid {
display: grid;
gap: 10px 30px; /* 縦10px・横30px */
}
このように書くと、行と列で異なるスペースを設定できます。
ブログカードや画像ギャラリーなど、デザインの自由度が高まります。
5 gapを使うメリット
marginのように端で余白を調整する必要がない- コードがシンプルになる
- FlexboxとGridの両方で使える
- レスポンシブ対応が容易
6 注意点
古いブラウザ(特にInternet Explorer)ではgapがサポートされていません。
ただし、現在の主要ブラウザではほぼ完全に対応しています。
7 完成イメージ
A
B
C
8 まとめ
gapプロパティを使えば、余白を直感的にコントロールできます。
FlexboxやGridを使う際は、marginの代わりにgapを活用して、より美しい整列を実現しましょう。

