The gap
CSS property sets the gaps (gutters) between rows and columns. It is a shorthand for row-gap
and column-gap
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
CSS Grid Layout initially defined the grid-gap
property. This prefixed property is being replaced by gap
. However, in order to support browsers that implemented grid-gap
and not gap
for grid, you will need to use the prefixed property as in the interactive example above.
Syntax
/* One <length> value */ gap: 20px; gap: 1em; gap: 3vmin; gap: 0.5cm; /* One <percentage> value */ gap: 16%; gap: 100%; /* Two <length> values */ gap: 20px 10px; gap: 1em 0.5em; gap: 3vmin 2vmax; gap: 0.5cm 2mm; /* One or two <percentage> values */ gap: 16% 100%; gap: 21px 82%; /* calc() values */ gap: calc(10% + 20px); gap: calc(20px + 10%) calc(10% - 5px); /* Global values */ gap: inherit; gap: initial; gap: unset;
This property is specified as a value for <'row-gap'>
followed optionally by a value for <'column-gap'>
. If <'column-gap'>
is omitted, itβs set to the same value as <'row-gap'>
.
<'row-gap'>
and <'column-gap'>
are each specified as a <length>
or a <percentage>
.
Values
<length>
- Is the width of the gutter separating the grid lines.
<percentage>
- Is the width of the gutter separating the grid lines, relative to the dimension of the element.
Formal definition
Initial value | as each of the properties of the shorthand:
|
---|---|
Applies to | multi-column elements, flex containers, grid containers |
Inherited | no |
Computed value | as each of the properties of the shorthand:
|
Animation type | as each of the properties of the shorthand:
|
Formal syntax
<'row-gap'> <'column-gap'>?
Examples
Flex layout
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; }
Result
Grid layout
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 { grid-gap: 20px 5px; }
#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; }
Result
Multi-column layout
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; }
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Box Alignment Module Level 3 The definition of 'gap' in that specification. |
Working Draft | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Support in Flex layout
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Supported in Flex Layout | Chrome Full support 84 | Edge Full support 84 | Firefox Full support 63 | IE No support No | Opera Full support 70 | Safari No support No | WebView Android Full support 84 | Chrome Android Full support 84 | Firefox Android Full support 63 | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
Support in Grid layout
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Supported in Grid Layout | Chrome
Full support
66
| Edge
Full support
16
| Firefox
Full support
61
| IE No support No | Opera
Full support
53
| Safari
Full support
10.1
| WebView Android
Full support
66
| Chrome Android
Full support
66
| Firefox Android
Full support
61
| Opera Android
Full support
47
| Safari iOS
Full support
10.3
| Samsung Internet Android
Full support
9.0
|
calc() values | Chrome Full support 66 | Edge Full support 16 | Firefox Full support 52 | IE No support No | Opera Full support 53 | Safari No support No | WebView Android Full support 66 | Chrome Android Full support 66 | Firefox Android Full support 52 | Opera Android Full support 47 | Safari iOS No support No | Samsung Internet Android Full support 9.0 |
<percentage> values | Chrome Full support 66 | Edge Full support 16 | Firefox Full support 52 | IE No support No | Opera Full support 53 | Safari No support No | WebView Android Full support 66 | Chrome Android Full support 66 | Firefox Android Full support 52 | Opera Android Full support 47 | Safari iOS No support No | Samsung Internet Android Full support 9.0 |
Legend
- Full support
- Full support
- No support
- No support
- User must explicitly enable this feature.
- User must explicitly enable this feature.
- Uses a non-standard name.
- Uses a non-standard name.
Support in Multi-column layout
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Supported in Multi-column Layout | Chrome Full support 66 | Edge Full support 16 | Firefox Full support 61 | IE No support No | Opera Full support 53 | Safari No support No | WebView Android Full support 66 | Chrome Android Full support 66 | Firefox Android Full support 61 | Opera Android Full support 47 | Safari iOS No support No | Samsung Internet Android Full support 9.0 |
Legend
- Full support
- Full support
- No support
- No support
See also
- Related CSS properties:
row-gap
,column-gap
- Grid Layout Guide: Basic concepts of grid layout - Gutters