我正在尝试为一个影子DOM根元素的子元素设置样式。
这定义了一个名为element-el
的自定义元素,其中有一个名为“x”的类命名为的元素,其中包含字母x,我想将其设置为红色。
class El extends HTMLElement {
constructor() {
super();
var shadow = this.attachShadow({mode:'open'});
shadow.innerHTML = '<span class="x">X</span>';
}
}
customElements.define ('element-el',El);
我已经尝试了这些 CSS 样式:
element-el::slotted(.x) {
color:red;
}
element-el::host .x {
color:red;
}
element-el:host .x {
color:red;
}
element-el::shadow .x {
color:red;
}
element-el /deep/ .x {
color: red;
}
element-el::content .x {
color:red;
}
X不会变成红色。我正在使用Chrome 56,它应该支持此操作...
我想在不将样式
元素放入影子DOM中的情况下进行样式设置。
这是一个Codepen示例:
http://codepen.io/anon/pen/OpRLVG?editors=1111
编辑:
这篇文章表明,从外部CSS文件中设置样式可以影响到shadow children - 他们可能是错的吗?