仅在最后位置选择奇数元素而不是唯一的子元素

Cod*_*ker 6 css css-selectors css3

如果它是奇数,我需要定位最后一个元素.

可以说我有3个元素.我想只针对第3个元素,因为它的最后一个和它的奇数.但是,如果我有1个元素,我不希望这个规则适用,即使这实际上是奇数也是如此.

1 2 3(target)

1 2 3 4 5(target)

1 2(don't target)

1(don't target)
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

所以我基本上想要结合起来:nth-child(odd),:not(:only-child)并且只有在适用的情况下.

lon*_*day 10

我想你的意思是你要选择一个元素

  • 最后一个孩子
  • 不是唯一的孩子

将所有这些结合起来相当简单:

:nth-child(odd):last-child:not(:only-child) {
    color: blue; // or whatever
}
Run Code Online (Sandbox Code Playgroud)


Bol*_*ock 5

有多种方法可以做到这一点,如果对您而言具有不同程度的特异性.

一,正如lonesomeday所建议的那样,具有特异性(0,3,0)(3个伪类,:not(:only-child)同样具体:only-child):

:nth-child(odd):last-child:not(:only-child)
Run Code Online (Sandbox Code Playgroud)

另一个,具有特异性(0,2,0):

:nth-child(2n+3):last-child
Run Code Online (Sandbox Code Playgroud)

表达式2n + 3从第3个孩子开始匹配,无需使用:not(:only-child).(相比之下,"odd"关键字相当于2n + 1.)


Aiv*_*kas -2

应该发挥魔法,你可以使用 not 作为选择器

target:not(:first-child):last-child { /*some magic css*/ }
Run Code Online (Sandbox Code Playgroud)