gap (grid-gap)

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

CSS グリッドレイアウトでは、当初は grid-gap プロパティを定義していました。この接頭辞付きのプロパティは gap に置き換えられました。しかし、グリッドで grid-gap を実装していて gap を実装していないブラウザーに対応するため、上記のデモにあるように、接頭辞付きのプロパティを使用する必要があるでしょう。

構文

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

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

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

/* 一つ又は二つの <percentage> 値 */
gap: 16% 100%;
gap: 21px 82%;

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

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

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

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

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

形式文法

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

フレックスレイアウト

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

HTML

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

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

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

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

<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

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

結果

仕様書

仕様書 状態 備考
CSS Box Alignment Module Level 3
gap の定義
草案 初回定義
初期値一括指定の各プロパティとして
適用対象grid containers
継承なし
メディア視覚
計算値一括指定の各プロパティとして
  • row-gap: 指定通りで、 <length> は絶対長になり、 normal の計算値は段組み要素を除き 0 になる
  • column-gap: 指定通りで、 <length> は絶対長になり、 normal の計算値は段組み要素を除き 0 になる
アニメーションの種類一括指定の各プロパティとして
正規順序形式文法で定義される一意のあいまいでない順序

ブラウザーの対応

フレックスレイアウトでの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Supported in Flex LayoutChrome 未対応 なしEdge 未対応 なしFirefox 完全対応 63IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 63Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android ?

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

グリッドレイアウトでの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Supported in Grid LayoutChrome 完全対応 66
完全対応 66
完全対応 57
代替名
代替名 非標準の名前 grid-gap を使用しています。
完全対応 29
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 29: this feature is behind the Enable experimental Web Platform features preference. To change preferences in Chrome, visit chrome://flags.
Edge 完全対応 16
完全対応 16
完全対応 16
代替名
代替名 非標準の名前 grid-gap を使用しています。
Firefox 完全対応 61
完全対応 61
完全対応 52
代替名
代替名 非標準の名前 grid-gap を使用しています。
未対応 40 — 59
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 40 until version 59 (exclusive): this feature is behind the layout.css.grid.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 未対応 なしOpera 完全対応 53
完全対応 53
完全対応 44
代替名
代替名 非標準の名前 grid-gap を使用しています。
完全対応 28
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 28: this feature is behind the Enable experimental Web Platform features preference.
Safari 完全対応 10.1
代替名
完全対応 10.1
代替名
代替名 非標準の名前 grid-gap を使用しています。
WebView Android 完全対応 66
完全対応 66
完全対応 57
代替名
代替名 非標準の名前 grid-gap を使用しています。
Chrome Android 完全対応 66
完全対応 66
完全対応 57
代替名
代替名 非標準の名前 grid-gap を使用しています。
完全対応 29
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 29: this feature is behind the Enable experimental Web Platform features preference. To change preferences in Chrome, visit chrome://flags.
Firefox Android 完全対応 61
完全対応 61
完全対応 52
代替名
代替名 非標準の名前 grid-gap を使用しています。
未対応 40 — 59
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 40 until version 59 (exclusive): this feature is behind the layout.css.grid.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 47
完全対応 47
完全対応 43
代替名
代替名 非標準の名前 grid-gap を使用しています。
完全対応 28
代替名 無効
代替名 非標準の名前 grid-gap を使用しています。
無効 From version 28: this feature is behind the Enable experimental Web Platform features preference.
Safari iOS 完全対応 10.3
代替名
完全対応 10.3
代替名
代替名 非標準の名前 grid-gap を使用しています。
Samsung Internet Android 完全対応 6.0
代替名
完全対応 6.0
代替名
代替名 非標準の名前 grid-gap を使用しています。
calc() values
実験的
Chrome 完全対応 66Edge 完全対応 16Firefox 完全対応 52IE 未対応 なしOpera 完全対応 53Safari 未対応 なしWebView Android 完全対応 66Chrome Android 完全対応 66Firefox Android 完全対応 52Opera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
<percentage> values
実験的
Chrome 完全対応 66Edge 完全対応 16Firefox 完全対応 52IE 未対応 なしOpera 完全対応 53Safari 未対応 なしWebView Android 完全対応 66Chrome Android 完全対応 66Firefox Android 完全対応 52Opera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。
非標準の名前を使用しています。
非標準の名前を使用しています。

段組みレイアウトでの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Supported in Multi-column LayoutChrome 完全対応 66Edge 完全対応 16Firefox 完全対応 61IE 未対応 なしOpera 完全対応 53Safari 未対応 なしWebView Android 完全対応 66Chrome Android 完全対応 66Firefox Android 完全対応 61Opera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応

 

関連情報