跨越多列的列表条目之间的线

时间:2018-08-07 20:33:26

标签: css

我有一个具有简单CSS样式的列表,可以在列表元素之间添加水平线,如下所示:

li:not(:last-child) {
  border-bottom: 1px solid black;
}

这很好用,除了现在我想将列表分成两列,我这样做是这样的:

ul {
  column-count: 2;
  column-width: 50%;
}

此问题是,左列底部的列表项具有底部边框,因为:not(:last-child)条件将整个列表视为一个连续的序列,而不是两个单独的序列

是否可以构造CSS规则,使其不应用于多列元素中每一列的最后一个元素,或者可以使用某些替代方法来代替?

就变通办法而言,我当然可以在页面生成过程中将列表一分为二(在我的PHP脚本中为 ie ),但是我特别想知道是否有一个纯CSS解决方案。

为澄清起见,这是上面内容的图片: Current Appearance

我想做的是以通用的方式摆脱第四元素下面的线(即,不使用:not(:nth-child(4))等)。

1 个答案:

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