为什么应用于 body 的颜色会影响 shadow-root
Why color applied to a body affects shadow-root
这是我的简单 HTML。 h1
在影子根内,但它是绿色的。这种从阴影 DOM 之外的 parent 元素继承颜色的行为是否符合预期?我想知道是因为元素选择器无法跨越阴影边界(h1
样式未应用于阴影根内的 h1
)
<head>
<style>
body { color: green }
h1 { color: red; }
</style>
</head>
<my-element>
#shadow-root
<h1>text is green</h1>
</my-element>
理想情况下,我正在寻找定义此行为的规范的一部分。
存在 shadowHost 和 shadowRoot。
shadowRoot 是附加到元素以提供阴影的东西 DOM。
shadowHost 是影子根所依附的。
显然,当您在 html 页面中定义平面内容时,它会附加到 body 元素 shadowroot。
同样说它附加到 body 的 shadowDOM,或者 body 作为 shadowHost.
我想这是 'default shadowRoot' 的默认行为。你在哪里写 'text is green' 因为 body 应该是页面内容的根元素。而 html 标签描述文档语言。 head 定义元数据内容。
所以绿色风格被正确继承了。
是的,这种行为是预期的。来自 spec:
The top-level elements of a shadow tree inherit from their host element.
在您的例子中,影子宿主 my-element
继承了 body
元素的颜色。 h1
,在 my-element
的阴影根中,继承自 my-element
。
这是我的简单 HTML。 h1
在影子根内,但它是绿色的。这种从阴影 DOM 之外的 parent 元素继承颜色的行为是否符合预期?我想知道是因为元素选择器无法跨越阴影边界(h1
样式未应用于阴影根内的 h1
)
<head>
<style>
body { color: green }
h1 { color: red; }
</style>
</head>
<my-element>
#shadow-root
<h1>text is green</h1>
</my-element>
理想情况下,我正在寻找定义此行为的规范的一部分。
存在 shadowHost 和 shadowRoot。
shadowRoot 是附加到元素以提供阴影的东西 DOM。
shadowHost 是影子根所依附的。
显然,当您在 html 页面中定义平面内容时,它会附加到 body 元素 shadowroot。 同样说它附加到 body 的 shadowDOM,或者 body 作为 shadowHost.
我想这是 'default shadowRoot' 的默认行为。你在哪里写 'text is green' 因为 body 应该是页面内容的根元素。而 html 标签描述文档语言。 head 定义元数据内容。
所以绿色风格被正确继承了。
是的,这种行为是预期的。来自 spec:
The top-level elements of a shadow tree inherit from their host element.
在您的例子中,影子宿主 my-element
继承了 body
元素的颜色。 h1
,在 my-element
的阴影根中,继承自 my-element
。