Why doesn't this CSS :not() declaration filter down?
问题 I want to select spans that are not the descendants of a specific class, let's call it "no". Here's my CSS: div:not(.no) span{background-color:#00f;} Here's the HTML <div> <span>yes 1</span> </div> <div class="no"> <span>no 1</span> </div> <div class="no"> <div> <span>no 2</span> </div> </div> Two questions: Why does my CSS apply to both yes 1 and no 2? Why does the whole thing break if I switch to a universal selector? *:not(.no) span{background-color:#00f;} Here's the code in JSFiddle: http