Re: ::distributed and relative selectors (Was Re: [shadowdom]: Using :root to specify the insertion point in ::distributed)

On Thu, Apr 18, 2013 at 5:27 PM, Hayato Ito <hayato@google.com> wrote:
> On Fri, Apr 19, 2013 at 2:44 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
>> I think that, for the purpose of ::distributed, the scope element
>> should be an abstract container, not the actual <content> element.
>> This container would act as an element for the purposes of selectors,
>> but it has no tagname or any other quality to select on.  So, #1, #2,
>> and #3 would match, but #4 and #5 wouldn't, because the scoping
>> element isn't named "content".
>
> I noticed that we don't need 4) and 5) to prove contradiction. See the
> following example, introducing 4':
>
> 1). content::distributed(> .hello)               ->  Please assume this matches.
> 2). content::distributed(:scope > .hello)        -> Matches. (1 and 2
> should be equivalent according to the defintion of relative
> selectors).
> 3). content::distributed(*:scope > .hello)       -> Matches.
> 4'). content::distributed(* > .hello)       -> Should not match.
>
> 3) matches, but 4') should not match.
>
> I think it is hard to justify using :scope in this context. I am
> afraid that we should handle ':scope' in this context very *tricky* in
> implementing this. Maybe the spec is wrong.
> My proposal is using ':root' as suggested in the original thread.

I don't understand how :root could help.  If :scope is problematic,
presumably :root would have the same problems?

I don't have a problem with 4' matching, actually.  The virtual
element must not show up in the selector's results, but that's all
(and it can only appear if you use a selector like ":scope" or "*").

~TJ

Received on Friday, 19 April 2013 01:41:44 UTC