据https://developers.google.com/web/fundamentals/web-components/shadowdom#stylefromoutside说:
外部样式总是胜过shadow DOM中定义的样式。例如,如果用户编写选择器fancy-tabs {width:500px;它将胜过组件的规则:: host {width:650px;}。
这在我的例子中似乎不起作用。我已经设置了一个app-overlay组件。在里面我有一个带有.child类的div。根据上面的来源,我希望孩子在全局范围内设置填充:
app-overlay .child {
padding: 0 25%;
}
请参阅此处的完整示例:http://plnkr.co/edit/YQOmtxSA9AThCcNmrEJc?p=preview
请注意,设置为全局的填充不会应用于app-overlay子项(即使它应该胜过组件的样式)。
有什么步骤我不见了吗?
好吧,这只是简单的混乱,所以我把它放在这里以防万一有人崩溃。
通过全局范围样式覆盖仅适用于可继承的CSS属性。如果你想设置一些不可继承的属性(比如填充 - 请参阅完整列表here)。
所以我想对非可继承属性执行此操作的唯一方法是通过模板(例如调用文件)或css变量注入CSS。