【发布时间】:2019-02-20 10:32:46
【问题描述】:
根据https://developers.google.com/web/fundamentals/web-components/shadowdom#stylefromoutside:
外部样式总是胜过 shadow DOM 中定义的样式。为了 例如,如果用户编写选择器 fancy-tabs { width: 500px; }, 它将胜过组件的规则::host { width: 650px;}。
这在我的示例中似乎不起作用。我已经设置了一个应用程序覆盖组件。在里面我有一个 .child 类的 div。根据上述来源,我希望孩子在全局范围内设置填充:
app-overlay .child {
padding: 0 25%;
}
在此处查看完整示例:http://plnkr.co/edit/YQOmtxSA9AThCcNmrEJc?p=preview
请注意,设置为全局的 padding 不会应用于 app-overlay 子项(尽管它应该赢得组件的样式)。
有没有我遗漏的步骤?
【问题讨论】:
-
在原生实例中,您可以使用 chrome 开发者工具来检查和检查完整的 css 应用堆栈
-
感谢@Attersson。我已经检查了好几次,但没有成功。最终我找到了答案(见下面我的答案)。再次感谢:)
-
请注意,在引文中:“胜过 shadow DOM 中定义的样式”的意思是“胜过
:host样式”,而不是子元素样式。 -
我试过
:host。仍然没有工作。它仅适用于可继承属性的情况。如果您为自定义元素本身设置样式 AFAIK,则此短语也是正确的。 -
实际上它适用于 :host
标签: javascript web-component shadow-dom