Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何将聚合物与现有样式表一起使用?_Html_Css_Polymer_Shadow Dom - Fatal编程技术网

Html 如何将聚合物与现有样式表一起使用?

Html 如何将聚合物与现有样式表一起使用?,html,css,polymer,shadow-dom,Html,Css,Polymer,Shadow Dom,提到可以使用/deep/跨阴影DOM边界选择元素。然而,我已经有了一个来自我的客户购买的主题的样式表。是否可以使样式表中的选择器在不更改样式表本身的情况下跨阴影DOM边界工作?其他地方建议使用applyAuthorStyles,但这似乎已从shadow DOM规范中删除。由于/deep/and::shadow选择器已经存在,而且您无论如何都不想修改现有样式表,因此我建议您在组件模板中使用css@imports(我假设您将克隆并使用它作为影子根)以包含此外部样式表。 这将本质上使该样式成为组件的本

提到可以使用
/deep/
跨阴影DOM边界选择元素。然而,我已经有了一个来自我的客户购买的主题的样式表。是否可以使样式表中的选择器在不更改样式表本身的情况下跨阴影DOM边界工作?其他地方建议使用
applyAuthorStyles
,但这似乎已从shadow DOM规范中删除。

由于/deep/and::shadow选择器已经存在,而且您无论如何都不想修改现有样式表,因此我建议您在组件模板中使用css@imports(我假设您将克隆并使用它作为影子根)以包含此外部样式表。 这将本质上使该样式成为组件的本地样式,并在shadowdom中可用

如果您担心性能问题,请在同一页上查看

tl,dr,

使用浏览器缓存,基本上不会对这么多用户造成任何损失 导入,事实上,它可能比通过 使用穿孔器的多个阴影树


您是在制作自己的自定义元素,还是直接使用核心元素和纸质元素?自定义元素,但它们包含主题样式表所针对的HTML元素。样式表有
AB
选择器,其中只有
b
位于聚合元素中。您是否尝试在元素定义中使用现有样式表?@Casse我有。当
a
在聚合物元素外部而
b
在聚合物元素内部时,
ab
选择器就不能工作。我相信,如果不修改样式表,你想要的确切行为是不可能的。影子DOM的存在是为了提供封装,给开发人员某种安全性,他们的元素不会被屏蔽基本上,你想摆脱所有与上述原则相矛盾的封装。但是,你可以用脚本在CSS中的每两个选择器之间插入
/deep/
,这应该是比较轻松的。我知道这不是你想要的答案,因此我将其作为注释。