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

问题描述 投票:0回答:1

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子项(即使它应该胜过组件的样式)。

有什么步骤我不见了吗?

javascript web-component shadow-dom
1个回答
1
投票

好吧,这只是简单的混乱,所以我把它放在这里以防万一有人崩溃。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.