全局样式不会覆盖阴影dom样式

时间:2018-09-16 07:12:11

标签: javascript web-component shadow-dom

根据https://developers.google.com/web/fundamentals/web-components/shadowdom#stylefromoutside

  

外部样式始终胜过影子DOM中定义的样式。对于   例如,如果用户编写了选择器fancy-tabs {width:500px; },   它将胜过组件的规则::hos​​t {width:650px;}。

在我的示例中,这似乎不起作用。我已经设置了一个应用程序覆盖组件。在内部,我有一个.child类的div。根据以上来源,我希望孩子在全局范围内设置填充:

app-overlay .child {
  padding: 0 25%;
}

在此处查看完整示例:http://plnkr.co/edit/YQOmtxSA9AThCcNmrEJc?p=preview

请注意,设置为全局填充的填充不会应用于应用程序覆盖的子项(尽管它应该赢得组件的样式)。

我缺少任何步骤吗?

1 个答案:

答案 0 :(得分:1)

好的,这很容易混淆,所以我把它放在这里,以防万一有人撞到它。

通过全局作用域样式覆盖仅适用于可继承的CSS属性。 如果您想设置一些不可继承的属性(例如填充-请参见完整列表here)。

所以我想对不可继承属性执行此操作的唯一方法是通过模板(例如调用文件)或CSS变量注入CSS。