【问题标题】:Shadow-Piercing descendant combinator, '/deep/' , including '::shadow' pseudo elements, are being deprecated so how do we pierce the Shadow DOM?Shadow-Piercing 后代组合子 '/deep/' ,包括 '::shadow' 伪元素,正在被弃用,那么我们如何穿透 Shadow DOM?
【发布时间】:2016-01-09 21:53:12
【问题描述】:

假设我们有一些 CSS 代码用于类似动画 CSS 加载器之类的东西,我们希望在所有使用 Shadow DOM 的 Web 组件中使用它。如果我们无法像 ::shadow/deep/ 那样穿透 Shadow DOM,我们如何重用这个 CSS 代码?

我们甚至不能在影子 DOM 中添加 <link />,所以目前我不得不通过多个 <style> 标签复制代码。

我真的很想知道针对此类用例的建议最佳做法是什么。

谢谢。

【问题讨论】:

    标签: javascript css web-component shadow-dom


    【解决方案1】:

    我建议您在 shadow root 内使用 css @imports 来加载需要的外部样式表,而不是使用 <link />
    我已经就该主题写了一个答案here。在下面引用它以供参考。

    您可以创建一个 style.css 并将其导入到您的组件中,方法是: 模板中的 css @import。不会有多个网络调用, 因为浏览器会在您的第一个组件加载时缓存它并且 对于后续组件,它将从缓存中选择。

    【讨论】:

    • 这么简单的解决方案不知道为什么我没有想到这个。谢谢。
    • 你能发布一个例子来说明你的意思吗?
    猜你喜欢
    • 2020-03-16
    • 2018-03-10
    • 2020-05-09
    • 2020-07-07
    • 2017-12-10
    • 2022-08-09
    • 2020-07-31
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多