W3C home > Mailing lists > Public > www-style@w3.org > February 2010

Re: Specificity of :any (was Re: [css3-selectors] Grouping)

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Thu, 25 Feb 2010 17:25:47 -0600
Message-ID: <dd0fbad1002251525l5bac7d26l2f7d353ab4f28d59@mail.gmail.com>
To: "L. David Baron" <dbaron@dbaron.org>
Cc: www-style@w3.org
On Thu, Feb 25, 2010 at 5:16 PM, L. David Baron <dbaron@dbaron.org> wrote:
> On Thursday 2010-02-25 17:58 -0500, Boris Zbarsky wrote:
>> At least in Gecko's case, what you wrote above would indeed be more
>> or less just syntax sugar.  But this:
>>
>>   :any(#authors, #publications) div
>>
>> would probably be faster to match than:
>>
>>   #authors div, #publications div
>>
>> In fact, we're looking into implementing this right now (as
>> :-moz-any()) to more efficiently deal with the numerous rules of
>> this form that appear in our UA stylesheet.
>
> So the one thing that I just realized I'm not sure how to implement
> is specificity.  (What I actually have implemented is treating :any
> as a pseudo-class and ignoring its arguments, which probably isn't
> what we want.)
>
> So given a selector like:
>
> p:any(:hover,#mypara)
>
> Should this selector have:
>
>  specificity 11 (p + :any)
>  specificity 111 (p + :hover + #mypara)
>  specificity 121 (p + :any + :hover + #mypara)
>  specificity 11 (p + :hover) or 101 (p + #mypara) depending on how it
>   matches (with 101 if it matches both ways)?
>  one of 11 or 101, not depending on how it matches (just always the
>   lowest or highest)
>
> I'd note that the next-to-last seems like it might be best, but I
> can't think of an obvious way to implement it in our code.

Yes, ideally the :any() is transparent wrt specificity, which is your
second-to-last option.  I'm not opposed to the first or last(with
highest) options, though, if either of them end up being sufficiently
simpler.

~TJ
Received on Thursday, 25 February 2010 23:26:40 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:24 GMT