在项目开发,一定少不了显示列表,对于列表项我们往往需要一定的间隔分开,下面就要探讨实现这一效果的方式。
margin
通常情况下我们只需要给每一个元素设置一个 margin-bottom
即可
.item {
margin-bottom: 12px;
}
但是这样会带来最后一个元素也会有 margin-bottom
,这是我们不希望的,这个时候需要对最后一个元素进行处理
.item {
margin-bottom: 12px;
}
.item:last-child {
margin-bottom: 0;
}
或者使用“猫头鹰”表达式
.item + .item {
margin-top: 20px;
}
margin-trim
CSS 属性 margin-trim
可以实现上述效果而不用这么麻烦,它的取值语法如下:
margin-trim =
none |
block |
inline |
[ block-start || inline-start || block-end || inline-end ]
block
:块级子元素与容器的外边距会被裁剪为 0inline
:内联子元素与容器的外边距会被裁剪为 0
默认值为 none
。
所以为了实现效果,可采用如下写法:
.list {
/* 块级子元素与父容器的外边距裁剪为 0 */
margin-trim: block;
}
.item {
margin: 12px 0;
}
坏消息是只有 Safari 支持
flex + gap
更加简单的方式是使用 Flex 布局,然后通过 gap
属性指定子项之间的间距
.list {
display: flex;
flex-direction: column;
gap: 12px;
}
大部分浏览器都支持 Flex 布局的 gap
属性