- From: Hayato Ito <notifications@github.com>
- Date: Mon, 06 Jul 2015 00:41:57 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/250@github.com>
Title: [Shadow]: Should insertion point nodes have styles? (bugzilla: 17591) Migrated from: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17591 ---- comment: 0 comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17591#c0 *Takashi Sakamoto* wrote on 2012-06-25 05:56:55 +0000. According to the shadow dom spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles, insertion point nodes have styles: - the styles of the insertion point node are inherited by those child nodes of the shadow host that are assigned to this insertion point - the styles of the shadow insertion point node are inherited by the child nodes of the shadow root of the shadow DOM subtree, distributed to this shadow insertion point I think, this behavior looks natural for web developers. However, the spec also says: "To enable composition of shadow host's children and the shadow DOM subtree, a notion of insertion points is added to the abstraction. An insertion point is a defined location in the shadow DOM subtree, to which the shadow host's children are transposed when rendering." in http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees So no insertion point nodes appear in a composed tree. If insertion point nodes have styles and the styles are inherited by distributed nodes, styles of nodes, which are not in a composed tree, will affect rendering result. I think, it looks a little odd. The following is an example: \<div\> \<span\>This is an example.\</span\> \</div\> And a shadow root is attached to the div and the shadow root's innerHTML is: \<div\>!!!! \<content style="color: red">\</content\> !!!!\</div\> What color is the text: "This is an example."? ---- comment: 1 comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17591#c1 *Dimitri Glazkov* wrote on 2012-06-25 16:16:08 +0000. (In reply to comment #0) > According to the shadow dom spec: > http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles, > insertion point nodes have styles: > > - the styles of the insertion point node are inherited by those child nodes of > the shadow host that are assigned to this insertion point > - the styles of the shadow insertion point node are inherited by the child > nodes of the shadow root of the shadow DOM subtree, distributed to this shadow > insertion point I think there's a bug in spec here. What we need to convey is that the styles of the parent of the insertion point are inherited. > I think, this behavior looks natural for web developers. > > However, the spec also says: > "To enable composition of shadow host's children and the shadow DOM subtree, a > notion of insertion points is added to the abstraction. An insertion point is a > defined location in the shadow DOM subtree, to which the shadow host's children > are transposed when rendering." > in > http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees > > So no insertion point nodes appear in a composed tree. If insertion point nodes > have styles and the styles are inherited by distributed nodes, styles of nodes, > which are not in a composed tree, will affect rendering result. I think, it > looks a little odd. Right. > > The following is an example: > > \<div\> > \<span\>This is an example.\</span\> > \</div\> > > And a shadow root is attached to the div and the shadow root's innerHTML is: > > \<div\>!!!! > \<content style="color: red">\</content\> > !!!!\</div\> > > What color is the text: "This is an example."? The color should be whatever the color of \<div\> in the shadow DOM subtree is. style="color:red" is not used. However, we could consider that a \<content\> element does have styles, but has the initial style of display:contents and thus is not rendered. If the developer chooses to surface the \<content\> element, they could give it a different "display" value. This seems more flexible and less magical. However, we need to have "display:contents" spec'd in CSS first. Bug 16294 is related to this. ---- comment: 2 comment_url: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17591#c2 *Takashi Sakamoto* wrote on 2012-06-26 10:54:10 +0000. Thank you for answering. (In reply to comment #1) > (In reply to comment #0) > > According to the shadow dom spec: > > http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles, > > insertion point nodes have styles: > > > > - the styles of the insertion point node are inherited by those child nodes of > > the shadow host that are assigned to this insertion point > > - the styles of the shadow insertion point node are inherited by the child > > nodes of the shadow root of the shadow DOM subtree, distributed to this shadow > > insertion point > > I think there's a bug in spec here. What we need to convey is that the styles > of the parent of the insertion point are inherited. I see. > > I think, this behavior looks natural for web developers. > > > > However, the spec also says: > > "To enable composition of shadow host's children and the shadow DOM subtree, a > > notion of insertion points is added to the abstraction. An insertion point is a > > defined location in the shadow DOM subtree, to which the shadow host's children > > are transposed when rendering." > > in > > http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees > > > > So no insertion point nodes appear in a composed tree. If insertion point nodes > > have styles and the styles are inherited by distributed nodes, styles of nodes, > > which are not in a composed tree, will affect rendering result. I think, it > > looks a little odd. > > Right. > > > > > The following is an example: > > > > \<div\> > > \<span\>This is an example.\</span\> > > \</div\> > > > > And a shadow root is attached to the div and the shadow root's innerHTML is: > > > > \<div\>!!!! > > \<content style="color: red">\</content\> > > !!!!\</div\> > > > > What color is the text: "This is an example."? > > The color should be whatever the color of \<div\> in the shadow DOM subtree is. > style="color:red" is not used. I see. The color of \<div\>, the parent of the insertion point node, is applied. > However, we could consider that a \<content\> element does have styles, but has > the initial style of display:contents and thus is not rendered. If the > developer chooses to surface the \<content\> element, they could give it a > different "display" value. This seems more flexible and less magical. However, > we need to have "display:contents" spec'd in CSS first. > > Bug 16294 is related to this. I will look at the bug. Best regards, Takashi Sakamoto --- Reply to this email directly or view it on GitHub: https://github.com/w3c/webcomponents/issues/250
Received on Monday, 6 July 2015 07:43:37 UTC