CSS gap 简写属性用于设置行与列之间的间隙({{glossary("gutters", "网格间距")}})。

规范的早期版本将该属性命名为 grid-gap,且为了保持与旧网站的兼容性,浏览器仍然会接受 grid-gap 作为 gap 的别名。

{{InteractiveExample("CSS Demo: gap")}}

```css interactive-example-choice gap: 0;


```css interactive-example-choice gap: 10%;

```css interactive-example-choice gap: 1em;


```css interactive-example-choice gap: 10px 20px;

```css interactive-example-choice gap: calc(20px + 10%);


```html interactive-example <section class="default-example" id="default-example"> <div class="example-container"> <div class="transition-all" id="example-element"> <div>One</div> <div>Two</div> <div>Three</div> <div>Four</div> <div>Five</div> </div> </div> </section>

```css interactive-example

example-element {

border: 1px solid #c5c5c5; display: grid; grid-template-columns: 1fr 1fr; width: 200px; }

example-element > div {

background-color: rgba(0, 0, 255, 0.2); border: 3px solid blue; }


## 组成属性 该属性为以下 CSS 属性的简写: - {{cssxref("column-gap")}} - {{cssxref("row-gap")}} ## 语法 ```css /* 一个 <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: revert; gap: revert-layer; gap: unset;

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

<'row-gap'><'column-gap'> 都可以用 <length> 或者 <percentage> 来指定。

  • {{cssxref("<length>")}}
    • : 网格线之间的间隙宽度。
  • {{cssxref("<percentage>")}}
    • : 网格线之间的间隙宽度,为相对于当前元素尺寸的百分比。

形式定义

{{cssinfo}}

形式语法

{{csssyntax}}

示例

弹性布局

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

结果

{{EmbedLiveSample("弹性布局", "auto", 250)}}

网格布局

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

结果

{{EmbedLiveSample("网格布局", "auto", 250)}}

多列布局

HTML

<p class="content-box">
  这是使用 CSS <code>gap</code> 属性创建的具有 40px
  列间距的多栏文本。你不觉得这很有趣和令人兴奋吗?我当然是这么认为的!!!
</p>

CSS

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

结果

{{EmbedLiveSample("多列布局", "auto", "120px")}}