2
此处的规范 - https://drafts.csswg.org/css-scoping/#slots-in-shadow-tree有如下注释。影子DOM插槽内的继承
注意:将元素分配给插槽的非显而易见的结果是它们从它们分配给的插槽继承。他们的原始光树父亲和他们的插槽被分配到的任何更深的插槽不会影响继承。
所以我想,一旦一个元素被开槽,是可以获得样式应用于元素,可以继承像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
仍然是黑色的,但它显示为红色。很明显,我不是这个规范的意思,或者我正在做一些愚蠢的事情。
有人可以向我解释这个吗?
是的。我的坏例子。我会在上面的问题中解决这个问题,所以不会造成混淆。 –
如何演示这种情况? '和他们的槽被分配到的任何更深的槽。这可能超出了问题的范围,但是如果有时间的话,能否请你指点我可以找到例子的地方? –
我对直接从它的第一个插槽'有什么'感到困惑。另外,我尝试通过将样式应用于阴影树内的'slot'来设置文本节点的样式,但没有在那里继承。 https://codepen.io/praveenpuglia/pen/jwMmWd –