我有一个具有简单CSS样式的列表,可以在列表元素之间添加水平线,如下所示:
li:not(:last-child) {
border-bottom: 1px solid black;
}
这很好用,除了现在我想将列表分成两列,我这样做是这样的:
ul {
column-count: 2;
column-width: 50%;
}
此问题是,左列底部的列表项具有底部边框,因为:not(:last-child)
条件将整个列表视为一个连续的序列,而不是两个单独的序列
是否可以构造CSS规则,使其不应用于多列元素中每一列的最后一个元素,或者可以使用某些替代方法来代替?
就变通办法而言,我当然可以在页面生成过程中将列表一分为二(在我的PHP脚本中为 ie ),但是我特别想知道是否有一个纯CSS解决方案。>
我想做的是以通用的方式摆脱第四元素下面的线(即,不使用:not(:nth-child(4))
等)。
答案 0 :(得分:0)
还没有测试过,但是参考https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child,您可以尝试执行以下操作:
li:not(:nth-last-child(1)),
li:not(:nth-last-child(2)) {
border-bottom: 1px solid black;
}