我有这个自定义元素:
<my-custom-form>
#shadow-root
<style>
:host label {
color: red;
}
</style>
<div id="wrapper">
<slot name="form-label"></slot>
...
</div>
</my-custom-form>
现在我这样使用它:
<my-custom-form>
<label slot="form-label">Some Label</label>
</my-custom-form>
我期望label
应该样式为红色。但事实并非如此。是不是<label>
元素驻留在光DOM作为:主机的直接子?
我相信你的语法有问题,试着做:
:host( [label] ){ }
这是另一个关于SO的答案,它将消除你的疑虑!
- 对:host CSS伪类 应用更深入的选择
文档参考:
- https://developer.mozilla.org/en-US/docs/Web/CSS/主机()
插入的内容反映
样式是在lightDOM (with global CSS)中完成的
:host()
只样式化外面的"皮肤";在lightDOM
详细说明::::在shadowDOM槽中嵌套的子CSS选择器