- From: François REMY <francois.remy.dev@outlook.com>
- Date: Wed, 13 Mar 2013 19:53:39 +0100
- To: Brian Kardell <bkardell@gmail.com>, "liam@w3.org" <liam@w3.org>
- CC: Bjoern Hoehrmann <derhoermi@gmx.net>, "www-style@w3.org" <www-style@w3.org>
If I'm not mistaken, here is the kind of selectors Brian's proposal is aimed to :
:not(#a) {
selects all elements that are not #a
}
:and(#a *, #b *) {
selects all elements that have both a #a and a #b parent
}
:or(#a, #b) {
selects all elements that are either #a or #b
}
The other proposals (like anyOf, oneOf...) can be emulated using those three. Currently, we already have ':not()' (but I think it's somewhat limited to simple selectors) and it's already possible to emulate ':or()' using commas. So "a :or(b,c) d" == "a b d, a c d". So what's really missing is the ':and' operator.
(Brian if I'm wrong please correct me)
________________________________
> Date: Wed, 13 Mar 2013 14:36:33 -0400
> From: bkardell@gmail.com
> To: liam@w3.org
> CC: derhoermi@gmx.net; www-style@w3.org
> Subject: Re: [css-selectors] Proposal: Logical Combinators / Sets
>
>
>
>
> On Wed, Mar 13, 2013 at 2:25 PM, Liam R E Quin
> <liam@w3.org<mailto:liam@w3.org>> wrote:
> On Wed, 2013-03-13 at 12:20 -0400, Brian Kardell wrote:
> [...]
> > .person:allOf( [occupation='designers'] *, [country='US'] *).unemployed{
> > .... }
>
>
> Your example shows that it's going to be easy to simulate look-ahead,
> which stalls progressive rendering. People do that today anyway, using
> jQuery or other libraries, but providing the common cases in forms that
> are easily optimized seems to be a win, so I think some more work would
> be needed here.
>
>
> I'm not sure why - I think perhaps you've misunderstand my proposal.
>
> In my example the splats represent person, a better way to illustrate
> it might have been:
>
> *:allOf( [occupation='designers'] *, [country='US'] *).person.unemployed
>
> Selects descendants of elements that meet both of those criteria,
> regardless of where (this also makes them more resilient to minor
> changes in the structure). Since parsing is recursive, it seems
> impossible that you could construct a situation where there is an
> unknown like there would in the case of something like :has() (sigh, or
> the subject token if we must ;)).
>
> Of course, the whole idea of a proposal is that it can have counter
> proposals and I think perhaps you might have just made one - personally
> I care much more about a good discussion and competition of ideas than
> I do getting specifically this, but this seems very doable to me.
>
> -Brian
Received on Wednesday, 13 March 2013 18:54:07 UTC