这让我抓狂:
HTML:
<div><h1>Hello World!</h1></div>
CSS:
*:not(div) h1 { color: #900; }
这不是说“选择所有祖先不是 div
元素的 h1
元素”吗?因此,“Hello World!”不应该被着色为红色,但它仍然被着色了。
对于上面的标记,加入子组合器可以解决:
*:not(div) > h1 { color: #900; }
但如果 h1
元素不是 div
元素的子元素,则不影响它。例如:
<div><article><h1>Hello World!</h1></article></div>
因此,我想将h1
元素指示为div
元素的后代而不是子元素。有人能帮忙吗?
*
,例如:not(div)
,就像你指定.class
或#id
一样,不需要使用*
。 - BoltClock