- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Fri, 30 Sep 2011 20:15:44 -0700
- To: www-style@w3.org
On 09/30/2011 05:03 PM, Tab Atkins Jr. wrote: > > I thought it was generally agreed long ago that the best approach was > to use :has() rather than a marker in the selector. It's more general > and allows more types of things to be expressed. It wasn't *generally* agreed. It was only agreed by some people. > Basically, the subject indicator is exactly equivalent to a :has() > pseudo limited to the end of the selector: > > foo $bar baz {...} == foo bar:has(baz) {...} > > However, :has() can be placed anywhere in the selector, and so allows > more powerful selections: > > label:has(:checked) + section> p {...} The limitation to a single branch here is intentional, due to implementation concerns. If I were going to do branching, I'd expand :matches() to take full selectors rather than only compounds. label:matches(!#$%? :checked) + section > p { ... } This has the advantage that selectors work the same whether they are within or without the pseudo-class argument. There's neither implicit nor dangling combinators, as you have with :has(). ~fantasai
Received on Saturday, 1 October 2011 03:16:24 UTC