不能使用子节点:非伪选择器

时间:2016-10-29 03:16:57

标签: html css css-selectors

我在使用:not使用一些相对简单的CSS选择器时遇到了麻烦。即,以下选择器给出了一个错误:

a:not(.ebook_document *)

我正在尝试使用类<a>获取不是元素子元素的所有ebook_document元素。这也失败了:

a:not(.ebook_document > *)

以及:

a:not(.ebook_document, *)

将选择器放在自己的位置,而不是放在:not部分可以正常工作。我做错了什么?

2 个答案:

答案 0 :(得分:3)

:不仅需要simple选择器。 (目前,CSS 4将其扩展为selector list。)

另外,https://developer.mozilla.org/en/docs/Web/CSS/:not -

  

此选择器仅适用于一个元素;你不能用它来排除所有的祖先。例如,body :not(table) a仍将应用于表格内的链接,因为它将与选择器的:not()部分匹配。&#34;

使用时不可能使用:不。

你只能以相反的方式解决问题 - 格式化所有&#34;正常&#34;链接,然后使用.ebook_document a { ... }

为目标元素内的链接应用不同的格式

因此,这意味着而不是首先将样式应用于这些链接,您可能需要覆盖那些您不喜欢这些链接的样式。

(或使用initial/all实际重置样式,但浏览器支持仍缺少AFAIK。)

答案 1 :(得分:0)

嗯,它不应该是:不是(.ebook_document)?我没有测试它,但似乎应该引用所有没有.ebook_document标签的标签。