回答
我想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 –