Re: [selectors] Are really arbitrary selectors allowed in :not()?

The selector list inside :not() applies to the element being matched.

div:not(.someclass > span) never matches anything since no element would 
have the local names "div" and "span" simultaneously.
span:not(div > .someclass) matches any span that does not have a class 
"someclass" and is not under a div.

This selector already works in WebKit Nightly, you can try it there. It 
is really useful to get elements that are not the in certain subtrees, 
e.g. img:not(:any-link >> *)

Benjamin

On 1/19/15, 2:03 AM, Sebastian Zartner wrote:
> Selectors Level 4 removes the restriction to simple selectors for the 
> :not() pseudo-class and now allows it to take a selector list. The 
> only restriction mentioned is that pseudo-elements are forbidden.
> Does this mean it allows arbitrary selectors like matching descendants?
>
> Examples:
> div:not(.someclass > span)
> section:not(a:hover)
>
> I assume the selectors should be restricted to aspects of the element 
> as in Level 3, i.e. :not() takes a list of **simple** selectors.
> Otherwise it would cover the functionality of the :has() pseudo-class 
> and fall into the category of complete selector profiles.
>
> Sebastian

Received on Monday, 19 January 2015 18:58:26 UTC