- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 18 Apr 2013 10:44:22 -0700
- To: Hayato Ito <hayato@google.com>
- Cc: Dimitri Glazkov <dglazkov@google.com>, fantasai <fantasai.lists@inkedblade.net>, "www-style@w3.org" <www-style@w3.org>
On Thu, Apr 18, 2013 at 1:44 AM, Hayato Ito <hayato@google.com> wrote: > The subject was changed. > On Wed, Apr 3, 2013 at 9:01 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: >> On Tue, Apr 2, 2013 at 3:01 PM, Dimitri Glazkov <dglazkov@google.com> wrote: >>> Using scope-relative approach (which I love), what does >>> ::distributed(:scope) represent? >> >> Nothing. The scope element is a theoretical construct here >> representing a container for all the distributed elements, not a real >> element that you can do something with. > > I am now implementing relative selectors in blink. > As the first usecase of relative selectors, I've tried to use it in > '::distributed(..)' pseudo elements. > > Now I have a question. Let me use the following deduction: > > 1). content::distributed(> .hello) -> Please assume this matches. > 2). content::distributed(:scope > .hello) -> Matches. (1 and 2 > should be equivalent acccording to the defintion of relative > selectors). > 3). content::distributed(*:scope > .hello) -> Matches. > 4). content::distributed(content:scope > .hello) -> Matches. > 5). content::distributed(content > .hello) -> Should not match. 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". Alternately, we *could* do as you suggest and make the match/doesn't match split between #1 and #2, saying that the abstract container isn't an element at all and can't be selected. But I think that's less natural. ~TJ
Received on Thursday, 18 April 2013 17:45:09 UTC