The column-gap CSS property sets the size of the gap (gutter) between an element's columns.

Initially a part of Multi-column Layout, the definition of column-gap has been broadened to include multiple layout methods. Now specified in Box Alignment, it may be used in Multi-column, Flexible Box, and Grid layouts.

CSS Grid Layout initially defined the grid-column-gap property. This prefixed property is being replaced by column-gap. However, in order to support browsers that implemented grid-column-gap and not column-gap for grid, you will need to use the prefixed property as in the second interactive example above.

Syntax

/* Keyword value */
column-gap: normal; 

/* <length> values */
column-gap: 3px;
column-gap: 2.5em;

/* <percentage> value */
column-gap: 3%;

/* Global values */
column-gap: inherit;
column-gap: initial;
column-gap: unset;

The column-gap property is specified as one of the values listed below.

Values

normal
The browser's default spacing is used between columns. For multi-column layout this is specified as 1em. For all other layout types it is 0.
<length>
The size of the gap between columns, defined as a <length>. The <length> property's value must be non-negative.
<percentage>
The size of the gap between columns, defined as a <percentage>. The <percentage> property's value must be non-negative.

Formal syntax

normal | <length-percentage>

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

Examples

Flex layout

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

HTML

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

CSS

#flexbox {
  display: flex;
  height: 100px;
  column-gap: 20px;
}

#flexbox > div {
  background-color: lime;
  flex: auto;
}

Result

Grid layout

HTML

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

CSS

#grid {
  display: grid;
  height: 100px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px;
  column-gap: 20px;
}

#grid > div {
  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 `column-gap` property.
  Don't you think that's fun and exciting? I sure do!
</p>

CSS

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

Result

Specifications

Specification Status Comment
CSS Box Alignment Module Level 3
The definition of 'column-gap' in that specification.
Working Draft Applies to grid and flexbox
CSS Grid Layout
The definition of 'column-gap' in that specification.
Candidate Recommendation Specifies how this property affects grid layouts
CSS Multi-column Layout Module
The definition of 'column-gap' in that specification.
Working Draft Initial definition

Initial valuenormal
Applies tomulti-column elements, flex containers, grid containers
Inheritedno
Percentagesrefer to corresponding dimension of the content area
Mediavisual
Computed valueas specified, with <length>s made absolute, and normal computing to zero except on multi-column elements
Animation typea length, percentage or calc();
Canonical orderper grammar

Browser compatibility

Support in Flex layout

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support ? ?63 No ? No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? ? ?63 ? No ?

Support in Grid layout

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

66

571

291 2

16

161

61

521

401 3

No

53

441

281 4

10.11
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support

66

571

291 5

66

571

291 2

16

161

61

521

401 3

53

441

10.316.01

1. Supported as grid-gap.

2. From version 29: this feature is behind the Enable experimental Web Platform features preference. To change preferences in Chrome, visit chrome://flags.

3. From version 40: this feature is behind the layout.css.grid.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

4. From version 28: this feature is behind the Enable experimental Web Platform features preference.

5. From version 29: this feature is behind the Enable experimental Web Platform features preference.

Support in Multi-column layout

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

50

Yes -webkit-

12

12 -webkit-

52

1.5 -moz- 1

10

37

15 -webkit-

11.1 — 15

10

3 -webkit-

<percentage> values661661 No ? No
calc() values661661 No ? No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support

50

Yes -webkit-

50

Yes -webkit-

12

12 -webkit-

52

4 -moz-

37

15 -webkit-

11.1 — 14

10

3 -webkit-

5.0

Yes -webkit-

<percentage> values66661661 ? No No
calc() values66661661 ? No ?

1. Before Firefox 3, the default value for the normal keyword was 0 and not 1em.

See also