column-gap
column-gap
CSS 属性设置元素列之间的间距(gutter)大小。
column-gap
最初是 多列布局 的一部分,其定义已扩展到包括多种布局方法。现在在 CSS 盒对齐 中指定,它可用于多列、弹性盒和网格布局。
规范的早期版本将此属性称为 grid-column-gap
,为了保持与旧版网站的兼容性,浏览器仍将接受 grid-column-gap
作为 column-gap
的别名。
试一试
column-gap: 0;
column-gap: 10%;
column-gap: 1em;
column-gap: 20px;
<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>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
width: 200px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
语法
/* 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: revert;
column-gap: revert-layer;
column-gap: unset;
column-gap
属性指定为以下列出的值之一。
值
normal
-
在列之间使用浏览器的默认间距。对于多列布局,这指定为
1em
。对于所有其他布局类型,它为 0。 <length>
<percentage>
-
列之间的间距大小,定义为
<percentage>
。<percentage>
属性的值必须是非负数。
正式定义
正式语法
column-gap =
normal |
<length-percentage [0,∞]>
<length-percentage> =
<length> |
<percentage>
示例
弹性布局
在此示例中,一个弹性容器包含六个具有两种不同宽度(200px
和 300px
)的弹性项目,创建的弹性项目未按网格布局。 column-gap
属性用于在相邻的弹性项目之间添加水平空间。
HTML
<div class="flexbox">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
为了创建弹性容器,我们将其 display
属性值设置为 flex
。然后,我们使用 flex-flow
简写属性将 flex-direction
设置为 row(默认值),将 flex-wrap
设置为 wrap
,允许弹性项目在需要时流向新行。默认情况下,弹性项目会拉伸到与其容器一样高。通过设置 height
,即使是空弹性项目也将高 100px
。
为了更好地演示 column-gap
属性,此示例中的弹性项目具有两个不同的宽度值。弹性项目的宽度在 <div>
弹性项目内设置。我们使用 flex
简写属性的 flex-basis
组件使所有弹性项目宽 200px
。然后,我们通过使用 :nth-of-type(3n)
选择器定位每个第三个弹性项目,将其宽度扩展到 300px
。
column-gap
值在弹性容器上设置为 20px
,以在每行相邻的弹性项目之间创建 20px
的间隙。
.flexbox {
display: flex;
flex-flow: row wrap;
height: 100px;
column-gap: 20px;
}
.flexbox > div {
border: 1px solid green;
background-color: lime;
flex: 200px;
}
div:nth-of-type(3n) {
flex: 300px;
}
结果
网格布局
HTML
<div id="grid">
<div></div>
<div></div>
<div></div>
<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 {
border: 1px solid green;
background-color: lime;
}
结果
多列布局
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 # 列行间距 |
CSS 网格布局模块 Level 2 # 间距 |
CSS Multi-column Layout Module Level 1 # column-gap |
浏览器兼容性
加载中…