【发布时间】:2017-06-15 09:51:29
【问题描述】:
这里的规范 - https://drafts.csswg.org/css-scoping/#slots-in-shadow-tree 有如下注释。
注意:将元素分配给槽的一个不明显的结果是它们继承了它们被分配到的槽。它们原来的轻树父级,以及它们的槽被分配到的任何更深的槽,都不会影响继承。
所以我认为一旦一个元素被插入,应用于该元素并且可以像color 或background-color 那样被继承的样式不会从它的轻量级 DOM 父级继承。
但是,在下面的示例中,确实如此。
这是我的代码。
class CustomTitle extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: "open" });
this.shadowRoot.innerHTML = "<slot name='title'></slot>";
}
}
window.customElements.define("custom-title", CustomTitle);
custom-title {
border: 2px solid;
display: block;
color: red;
}
<custom-title>
<h1 slot='title'>Hi There!</h1>
</custom-title>
我的期望是h1 仍然是黑色的,但它显示为红色。显然我不是规范的意思,或者我正在做一些愚蠢的事情。
谁能给我解释一下?
【问题讨论】:
标签: css inheritance web-component shadow-dom custom-element