gap 属性是用来描述网格行与列之间的间隙,该属性是row-gap and column-gap的简写形式。

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

语法

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

该属性用来表示 <'row-gap'> 和 <'column-gap'>的值,而<'column-gap'>是可选的,假如 <'column-gap'> 缺失的话,则会被设置成跟<'row-gap'>一样的的值。

<'row-gap'> and <'column-gap'> 都可以用  <length> 或者 <percentage> 来表示。

<length>
网格线之间的间隙宽度。
<percentage>
网格线直接的间隙宽度,相对网格容器的百分比。

正式语法

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

示例

Flex布局

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

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 {
  background-color: lime;
  flex: 1 1 auto;
  width: 100px; 
  height: 50px; 

}

Result

Grid布局

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 {
  background-color: lime;
}

Result

规范

规范 状态 备注
CSS Box Alignment Module Level 3
gap
Working Draft Initial definition

初始值as each of the properties of the shorthand:
适用元素grid containers
是否是继承属性
适用媒体visual
计算值as each of the properties of the shorthand:
  • row-gap: as specified, with <length>s made absolute, and normal computing to zero except on multi-column elements
  • column-gap: as specified, with <length>s made absolute, and normal computing to zero except on multi-column elements
Animation typeas each of the properties of the shorthand:
正规顺序the unique non-ambiguous order defined by the formal grammar

浏览器兼容性

在Flex 布局的兼容性

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

在Grid layout的兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support

66

571

291 2

16

161

61

521

401 3

No

53

441

281 4

10.11
<percentage> values661652 No53 No
calc() values66 ?52 No53 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support

66

571

66

571

291 2

No

61

521

401 3

53

441

10.316.01
<percentage> values6666 No5253 No No
calc() values6666 No5253 No No

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.

参见

文档标签和贡献者

标签: 
此页面的贡献者: narol
最后编辑者: narol,