这让我疯狂:
HTML:
<div><h1>Hello World!</h1></div>
Run Code Online (Sandbox Code Playgroud)
CSS:
*:not(div) h1 { color: #900; }
Run Code Online (Sandbox Code Playgroud)
这不是读",选择所有h1
具有祖先不是div
元素的元素......?" 因此,"你好世界!" 不应该是红色的,但它仍然是.
对于上面的标记,添加子组合器有效:
*:not(div) > h1 { color: #900; }
Run Code Online (Sandbox Code Playgroud)
但h1
如果元素不是元素的子元素,则不会影响div
元素.例如:
<div><article><h1>Hello World!</h1></article></div>
Run Code Online (Sandbox Code Playgroud)
这就是为什么我想将h1
元素表示为元素的后代而不是子div
元素.任何人?
我试图模糊除一个 div 中的所有元素。我看过很多这样类似的问题,一个和我得到这个:
.table-responsive:not(.confirm) {
filter: blur(3px);
pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)
这基本上应该模糊除确认类之外的所有元素。这是一个演示它的 js 小提琴:https : //jsfiddle.net/qbuyuhts/1/
这是一些janky html,但可以显示问题。有谁知道为什么 .confirm div 模糊?