除第一个孩子和最后一个孩子外的CSS选择器


105

我正在制作一个非常高级的网站。我的问题:是否可以选择除:first-child和以外的所有其他子代:last-child?我知道有一个:not()选择器,但是不能与多个选择器一起使用,而不放在括号中。这就是我所拥有的:

#navigation ul li:not(:first-child, :last-child) {
    background: url(images/UISegmentBarButtonmiddle@2x.png);
    background-size: contain;
}

您非常勇敢使用此功能。请注意,它仅适用于现代浏览器,并且绝对不适用于每个人都在使用的反浏览器。
摆脱

2
@Radu:“我正在建立一个非常高级的网站”,这不足为奇...
BoltClock

1
@BoltClock,对,只是说...警告语。但是无论如何,如果目标是图像名称所暗示的iOS Safari,那么它应该是安全的。
摆脱

1
现在,我明白了为什么这个问题看起来如此熟悉... stackoverflow.com/questions/7403129/combining-not-selectors
BoltClock

“反浏览器”?我一直在听新的Google Ultron吗?
乔纳森·杜马因

Answers:


261

尝试#navigation ul li:not(:first-child):not(:last-child)


您真棒!谢谢!
丹尼尔(Daniel)

1
罗夫,我的愚蠢not()甚至尝试过谷歌搜索之前:P天才
SidOfc

1
那是错误的:not (A and B)不等于(not A) and (not B),宁愿是(not A) or (not B)。这是行不通的。
Hibou57 '16

2
不,萨尔曼·阿巴斯所说的是对的。您正在考虑逗号;#navigation ul li:not(:first-child),#navigation ul li:not(:last-child)
user847074

20

当然可以,您只需要使用两个“ not”选择器即可。

#navigation ul li:not(:first-child):not(:last-child) {

它会在第一个孩子之后继续说“不是第一个孩子”和“不是最后一个孩子”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.