- From: Nikita Popov <privat@ni-po.com>
- Date: Fri, 08 Jan 2010 22:14:26 +0100
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- CC: www-style list <www-style@w3.org>
Am 08.01.2010 20:34, schrieb Tab Atkins Jr.:
> On Fri, Jan 8, 2010 at 12:54 PM, Nikita Popov<privat@ni-po.com> wrote:
>
>> Am 08.01.2010 19:25, schrieb Tab Atkins Jr.:
>>
>>> You could avoid that with:
>>>
>>> .page form :any(form> input, label select) {}
>>>
>>>
>> Could I?
>>
>> I think your selector would be resolved in
>> .page form form> input,
>> .page form label select
>> which is different from what I meant with the "> input":
>> .page form> input,
>> .page form label select
>>
> Nope, the :any (or :matches) pseudoclass matches any element that
> matches one of the selectors passed in. So this:
>
> .page form :matches(form> input, label select)
>
>
Ah... using a different name makes it much clearer. I thought of :any
really as a form of grouping, not subrules.
>> Actually, the missing space was not a typo, but I thought that
>> .page form :any(>input, ...)
>> would be
>> .page form *:any(>input, ...)
>> would be
>> .page form *> input
>> which wasn't my original intention ( .page form> input)
>>
> That's why we shouldn't allow bare combinators at the beginning, if we
> allow complex selectors. It's rather confusing to resolve properly.
>
Yeah, if using :matches() for subrules instead of grouping this gets
obvious. ">div" isn't a valid selector (is it?)
But if using the element really for matching subrules, not grouping, the
resolution to simple rules gets impossible. Consider:
.aclass (form > input, ...)
This cannot be resolved in
.aclass form > input
because" aclass" could be assigned to a form and we would therefore end
up with
form form > input
instead of
form > input
With grouping resolution is unambiguous.
Received on Friday, 8 January 2010 21:14:51 UTC