在 CSS 中组合 :not() 选择器
我试图选择 table
中的所有 tr
元素,除了第三个和第四个元素。我设法通过使用以下方法来做到这一点:
#table tr:not(:nth-child(3)):not(:nth-child(4))
我想组合这些选择器,因为我还有更多 :nth-child
条目。类似这样的东西,但它不起作用:
#table tr:not(:nth-child(3), :nth-child(4))
这可以在 jQuery 中工作,但在 CSS 中不起作用。我正在使用 Chrome(我只需要它在那里工作)。
我无法找到适合这种情况的组合选择器。如何将选择器与 :not
结合起来?
I'm trying to select all tr
elements inside a table
, except the third and fourth. I managed to do so by using:
#table tr:not(:nth-child(3)):not(:nth-child(4))
I'd like to combine those selectors because I've some more :nth-child
entries. Something like this, but it didn't work:
#table tr:not(:nth-child(3), :nth-child(4))
This does work in jQuery, but not in CSS. I'm using Chrome (and I only need it to work there).
I've not been able to find a combining selector for this case. How can I combine selectors with :not
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
选择器级别 3 只允许在其中包含一个 简单选择器一个
:not()
伪类。作为 jQuery 选择器,它之所以有效,是因为 jQuery 扩展了其:not()
功能以允许任何选择器(如.not()
方法) 。但是,您的第二种语法是建议的 对
:not() 的增强
在选择器 4 中,其工作方式与您的第一个相同。尽管该示例(无论如何在撰写本文时显示)显示了:not()
选择器链,但该提案表示:这里的选择器列表只是一个以逗号分隔的选择器列表。
如果您需要否定包含组合符(
>
、+
、~
、空格等的选择器,例如div p< /code>),不能在 CSS 中使用
:not()
;你必须使用 jQuery 解决方案。Selectors level 3 does not allow anything more than a single simple selector within a
:not()
pseudo-class. As a jQuery selector, it works because jQuery extends its:not()
functionality to allow any selector (like the.not()
method).However, your second syntax is one of the proposed enhancements to
:not()
in Selectors 4, and works equivalently to your first. Although the example (shown as of this writing anyway) shows a chain of:not()
selectors, the proposal says:Here a selector list is simply a comma-separated list of selectors.
If you need to negate selectors that contain combinators (
>
,+
,~
, space, etc, for examplediv p
), you can't use:not()
in CSS; you'll have to go with the jQuery solution.虽然标记的答案是正确的,但我只是想指出,您也可以使用 css 实现您想要的效果,但只是以不同的方式。您可以选择这些并取消应用您不需要的内容,而不是使用 not。
Although the marked answer is true I just want to point out that you can achieve what you want using css also but just in a different way. Instead of using not you can select those and unapply the stuff you don't want.