column-gap 该 CSS 属性用来设置元素列之间的间隔 (gutter) 大小。

column-gap一开始是 Multi-column 布局 下的特有属性,后来在其他布局中也使用这个属性。如 Box Alignment 中的表述,该属性已经在Multi-column(多列布局)、Flexible Box(弹性盒子)以及 Grid layouts(网格布局)中使用。

CSS Grid Layout 起初是用 grid-gap 属性来定义的,目前逐渐被 gap 替代。但是,为了兼容那些不支持 gap 属性的浏览器,你需要像上面的例子一样使用带有前缀的属性。

语法

/* 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;

 column-gap 属性有以下值来表示。

取值

normal

表示列之间的间隔宽度。在 多列布局 时默认间隔为1em,其他类型布局默认间隔为 0。
<length>
<length>来定义列之间的间隔大小。而且 <length> 值必须是非负数的。
<percentage>
<percentage>(百分比)来定义列之间的间隔大小。同样的,<percentage> 值也必须是非负数的。

正式语法

normal | <length-percentage>

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

示例

Flex布局

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

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;
}

结果

Grid布局

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;
}

结果

Multi-column布局

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;
}

结果

规范

规范 状态 备注
CSS Box Alignment Module Level 3
column-gap
Working Draft 在弹性布局和网格布局中应用
CSS Grid Layout
column-gap
Candidate Recommendation 描述在网格布局中的作用
CSS Multi-column Layout Module
column-gap
Working Draft 初始化定义

初始值normal
适用元素multi-column elements, flex containers, grid containers
是否是继承属性
Percentagesrefer to corresponding dimension of the content area
适用媒体visual
计算值as specified, with <length>s made absolute, and normal computing to zero except on multi-column elements
Animation typea length, percentage or calc();
正规顺序per grammar

浏览器兼容性

在 Flex 布局中的兼容性

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

在 Grid 布局中的兼容性

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

No

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.

在 Multi-column 布局中的兼容性

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 No53 No
calc() values661661 No53 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support

50

Yes -webkit-

50

Yes -webkit-

No

52

4 -moz-

37

15 -webkit-

11.1 — 14

10

3 -webkit-

5.0

Yes -webkit-

<percentage> values6666 No6153 No No
calc() values6666 No6153 No No

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

参见

文档标签和贡献者

此页面的贡献者: narol, Minya_Chan, billcz, fscholz, Sebastianz, FredWe
最后编辑者: narol,