回答
我想CSS选择器正在使用OR
或ORELSE
关系。所以当你使用像:not(.foo) li
这样的选择器时,会发生类似的情况:
statement1
:首先它会检查:实际元件的标记名是li
? (true
)
statement2_1
:排名第二位的是:最接近父母的班级不是.foo
? (true
)
statement2_2
:在未来的地方,它会检查下一个父:是下一个父类不.foo
(false
)
理论上下列语句计算:
statement1 AND (statement2_1 ORELSE statement2_2)
true AND (true ORELSE false) => true AND true = > true
如果你只是尝试其他方式:
li{
background-color: red;
}
.foo li{
background-color: initial;
}
<ul>
<li>11</li>
</ul>
<div class=foo>
<ul>
<li>22</li>
</ul>
</div>
这是不正确的。 ':not'伪类可以被自己使用,它不必被附加到另一个选择器。 https://developer.mozilla.org/en-US/docs/Web/CSS/%3Anot – Guffa
就像Guffa说的那样,不是类可以自己使用,并且第一个ul不在任何div内。我需要选择任何容器。 –
对不起,你是对的。我已经更新了答案。 – Pho3nixHun
它不工作,因为你并没有指明它是不能有类确切元素。包含li
元素的ul
元素不具有该类,因此它与选择器的:not(.foo)
部分相匹配。
确保:not(.foo)
部分通过指定确切位置的元素是相对于列表元素仅适用于正确的元素,例如:
:not(.foo) > ul > li { background: red; }
<ul>
<li>11</li>
</ul>
<div class="foo">
<ul>
<li>22</li>
</ul>
</div>
我不能使用直接后代,因为代码是动态的,可能有嵌套的lis和uls。 –
@DocKodam:然后您可以使用任何其他方式指定元素的位置。例如,如果它们直接位于'body'元素中(如示例中),则可以使用'body>:not(.foo)li'。 – Guffa
- 1. 为什么这个define指令似乎不起作用?
- 2. 为什么这个angularjs指令不起作用?
- 3. 这条指令为什么不起作用?
- 4. 为什么不这样做on.Click事件不起作用
- 5. 为什么使用Angular的这个markdown指令(来自博客)不起作用?
- 6. 为什么这不起作用?推动利用鼠标指针
- 7. 命令为什么不起作用
- 8. 为什么命令Diff2不起作用?
- 9. 为什么这个angularjs组件绑定不起作用,但是相同的样式指令正在工作
- 10. 为什么这个JavaScript不起作用?
- 11. 为什么这不起作用?
- 12. NSArrayController为什么这不起作用?
- 13. 为什么这个SQL不起作用?
- 14. 为什么这不起作用? libcurl&C++
- 15. LinqToXML为什么这不起作用?
- 16. 为什么这个XQuery不起作用?
- 17. 为什么这个re.search不起作用
- 18. SQL - 为什么这不起作用?
- 19. 为什么这个dockset不起作用?
- 20. 为什么这个xpath不起作用?
- 21. 为什么这个makefile不起作用?
- 22. 为什么这个jquery不起作用?
- 23. 为什么这个promise.all不起作用?
- 24. 为什么这一步不起作用?
- 25. CSS-为什么这不起作用?
- 26. 这个jquery为什么不起作用?
- 27. 为什么这个keyListener不起作用?
- 28. 这个JSON为什么不起作用?
- 29. 为什么这不起作用?
- 30. 为什么这不起作用? Java MySQL
'body:not(.foo)li'? – adelowo
'body:not(.foo)li' not working –