gap (grid-gap)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

gapCSS のプロパティで、行や列の間のすき間 () を定義します。これは row-gap および column-gap一括指定です。

試してみましょう

構文

css
/* 単一の <length> 値 */
gap: 20px;
gap: 1em;
gap: 3vmin;
gap: 0.5cm;

/* 単一の <percentage> 値 */
gap: 16%;
gap: 100%;

/* 2 つの <length> 値 */
gap: 20px 10px;
gap: 1em 0.5em;
gap: 3vmin 2vmax;
gap: 0.5cm 2mm;

/* 1 つまたは 2 つの <percentage> 値 */
gap: 16% 100%;
gap: 21px 82%;

/* calc() 値 */
gap: calc(10% + 20px);
gap: calc(20px + 10%) calc(10% - 5px);

/* グローバル値 */
gap: inherit;
gap: initial;
gap: revert;
gap: unset;

このプロパティは <'row-gap'> の値と、任意で <'column-gap'> の値を続けて指定します。 <'column-gap'> が省略された場合、 <'row-gap'> と同じ値が設定されます。

<'row-gap'> および <'column-gap'> はそれぞれ、 <length> または <percentage> で指定します。

<length>

グリッド線を隔てる溝の幅です。

<percentage>

要素の寸法に対する、グリッド線を隔てる溝の幅です。

公式定義

初期値一括指定の次の各プロパティとして
適用対象段組み要素、フレックスコンテナー、グリッドコンテナー
継承なし
計算値一括指定の次の各プロパティとして
  • row-gap: 指定通りで、 <length> は絶対長になり、 normal の計算値は段組み要素を除き 0 になる
  • column-gap: 指定通りで、 <length> は絶対長になり、 normal の計算値は段組み要素を除き 0 になる
アニメーションの種類一括指定の次の各プロパティとして

形式文法

gap = 
<'row-gap'> <'column-gap'>?

<row-gap> =
normal |
<length-percentage [0,∞]>

<column-gap> =
normal |
<length-percentage [0,∞]>

<length-percentage> =
<length> |
<percentage>

フレックスレイアウト

HTML

html
<div id="flexbox">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CSS

css
#flexbox {
  display: flex;
  flex-wrap: wrap;
  width: 300px;
  gap: 20px 5px;
}

#flexbox > div {
  border: 1px solid green;
  background-color: lime;
  flex: 1 1 auto;
  width: 100px;
  height: 50px;
}

結果

グリッドレイアウト

HTML

html
<div id="grid">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CSS

css
#grid {
  display: grid;
  height: 200px;
  grid-template: repeat(3, 1fr) / repeat(3, 1fr);
  gap: 20px 5px;
}

#grid > div {
  border: 1px solid green;
  background-color: lime;
}

結果

段組みレイアウト

HTML

html
<p class="content-box">
  This is some multi-column text with a 40px column gap created with the CSS
  <code>gap</code> property. Don't you think that's fun and exciting? I sure do!
</p>

CSS

css
.content-box {
  column-count: 3;
  gap: 40px;
}

結果

仕様書

Specification
CSS Box Alignment Module Level 3
# gap-shorthand

ブラウザーの互換性

BCD tables only load in the browser

関連情報