Я создаю списки, которые отображаются в столбцах по три, каждый <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.
Единственный другой способ, который я могу сделать для этого, - создать выражение nth-child для захвата только строк, содержащих 3, которые не являются последней строкой?
Думаю, может понадобиться какое-то деление на 3, чтобы найти сумму, чтобы применить ее тоже?