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")}}