W3C home > Mailing lists > Public > www-style@w3.org > January 2015

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

From: Benjamin Poulain <benjamin@webkit.org>
Date: Mon, 19 Jan 2015 10:57:26 -0800
Message-ID: <54BD5396.4060407@webkit.org>
To: www-style@w3.org
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

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:50 UTC