私は3つの列に表示されるリストを作成しています。すべて<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>
私がやりたいのはborder-bottom
、最後の 3 行の を削除する nth-child 式を作成することです。したがって、上記の例では次のようになります。
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 ではサポートされていません。
これを行うために考えられる唯一の他の方法は、最後の行ではない 3 を含む行のみをキャプチャする nth-child 式を作成することですか?
それを適用する量を探すには、何らかの3で割る必要があるのではないでしょうか?