我正在创建以三列显示的列表,每个<li>
都有border-bottom
这样的:
x | x | x
---------
x | x | x
---------
z | z | z
---------
<ul>
<li>x</li><li>x</li><li>x</li>
<li>x</li><li>x</li><li>x</li>
<li>z</li><li>z</li><li>z</li>
</ul>
我想要做的是创建一个 nth-child 表达式来删除border-bottom
最后一行的三,所以对于上面的例子,这将是:
ul li:nth-child(-n+6) {
border-bottom:0;
}
问题
然而,稍微复杂一点的是列表中的项目数量会有所不同,因此可能会出现以下任何情况:
方案 1
x | x | x
---------
x | x | x
---------
z |
---
<ul>
<li>x</li><li>x</li><li>x</li>
<li>x</li><li>x</li><li>x</li>
<li>z</li>
</ul>
方案 2
x | x | x
---------
x | x | x
---------
z | z |
-------
<ul>
<li>x</li><li>x</li><li>x</li>
<li>x</li><li>x</li><li>x</li>
<li>z</li><li>z</li>
</ul>
方案 3
x | x | x
---------
z | z |
-------
<ul>
<li>x</li><li>x</li><li>x</li>
<li>z</li><li>z</li>
</ul>
结论
我的目标是始终删除border-bottom
最后一行的 (或在本例中为字符z),以便它没有应用样式。
一个理想的解决方案是:
ul {
padding-bottom:-20px;
}
但padding-bottom:-#px;
在 CSS 中不支持。
我能想到的唯一其他方法是创建一个第 n 个子表达式来仅捕获包含 3 的行,这不是最后一行?
我想它可能需要某种除以 3 来寻找应用它的数量?