Re: [css-scoping] Shadow Cascading

On Thu, Feb 5, 2015 at 12:33 AM, Rune Lillesveen <rune@opera.com> wrote:
> On Wed, Feb 4, 2015 at 11:52 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
>> On Thu, Feb 5, 2015 at 9:38 AM, Hayato Ito <hayato@google.com> wrote:
>>> Looks like the current spec wants to say:
>>>
>>> 1. The Origin and Importance matters
>>> 2. [Shadow Tree] The outer wins the inner (only when there is an
>>> ancestor/descendant relationship between two node trees)
>>> 3. [Shadow Tree] The younger wins the older (only when they are hosted by
>>> the same shadow host)
>>> 4. Specificity matters
>>> 5. Order of Appearance in tree-of-trees matters
>>
>> Yes.  As far as I can tell, that's *exactly* what the spec is saying.
>> Is there anything unclear?
>
> No, it's clear now.

I'm sorry, but I'm afraid it isn't. There seems to be a circularity
here. Consider:

<!DOCTYPE html>
<div id="outerHost">
    <div id="innerHost">
        <div id="t" class="t">Which color do I have?</div>
    </div>
</div>
<script>
var outerRoot = outerHost.createShadowRoot();
var innerRootOld = innerHost.createShadowRoot();
var innerRoot = innerHost.createShadowRoot();

outerRoot.innerHTML = "<style>::content #t { color: red
}</style><content></content>";
innerRootOld.innerHTML = "<style>::content #t.t { color: green
}</style><content></content>";
innerRoot.innerHTML = "<style>::content .t { color: blue
}</style><shadow></shadow>";
</script>

Given rules in outerRoot(1), innerRootOld(2), and innerRoot(3) respectively.

- None of the scopes has a parent-child relationship in the tree-of-trees.
- (2) beats (1) due to specificity
- (1) beats (3) due to specificity
- (3) beats (2) because it's younger

-- 
Rune Lillesveen

Received on Thursday, 5 February 2015 13:30:56 UTC