如何定位除最后一个 css 之外的所有元素?
How to target all elements, except last one with css?
.outer a:not(:last-of-type) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
</div>
有没有一种方法可以将 div.outer 中的所有 <a>
都作为目标(我想不出方法来针对其中的一个)容器?我能想到的唯一解决方法是 css: .outer a:not(.last)
并将 .last 添加到最后 <a>
。有任何想法吗?背景:我这样做的主要想法是,我有一些元素,它们靠近容器的边缘,所以除了最后一个,每个元素都必须从右边有 10 个边距。在这种情况下,我不必在每个 <a>
中键入 class margin-right-10,这只是我遵循的自己的风格。
.outer > a:not(:last-of-type), .outer > div a
同样有效,但不更改您的标记。
如果 .outer
中的级别数已知(或有限),您可以像这样扩展选择器:
.outer > * > a,
.outer > a:not(:last-of-type) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
</div>
.outer > * > a
部分确保更深层的链接也包含在匹配集中。
UPD. 版本 #2 也考虑了嵌套链接是最后一个的情况:
.outer > *:not(:last-child) > a,
.outer > a:not(:last-child) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
<div>
<a href="#">Six</a>
</div>
</div>
.outer a:not(:last-of-type) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
</div>
有没有一种方法可以将 div.outer 中的所有 <a>
都作为目标(我想不出方法来针对其中的一个)容器?我能想到的唯一解决方法是 css: .outer a:not(.last)
并将 .last 添加到最后 <a>
。有任何想法吗?背景:我这样做的主要想法是,我有一些元素,它们靠近容器的边缘,所以除了最后一个,每个元素都必须从右边有 10 个边距。在这种情况下,我不必在每个 <a>
中键入 class margin-right-10,这只是我遵循的自己的风格。
.outer > a:not(:last-of-type), .outer > div a
同样有效,但不更改您的标记。
如果 .outer
中的级别数已知(或有限),您可以像这样扩展选择器:
.outer > * > a,
.outer > a:not(:last-of-type) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
</div>
.outer > * > a
部分确保更深层的链接也包含在匹配集中。
UPD. 版本 #2 也考虑了嵌套链接是最后一个的情况:
.outer > *:not(:last-child) > a,
.outer > a:not(:last-child) {
color: red;
}
<div class="outer">
<a href="#">First</a>
<a href="#">Second</a>
<div>
<a href="#">Third</a>
</div>
<a href="#">Fourth</a>
<a href="#">Fifth</a>
<div>
<a href="#">Six</a>
</div>
</div>