javascript - 如何在 shadow dom 中使用全局 css 样式

标签 javascript web-component shadow-dom

Shadow dom 封装css样式,选择器不跨越shadow边界。

问题:如何在shadow dom中使用全局通用的css样式?
(假设有一些通用的 css 样式将在所有页面中使用(例如:font-family、h1、h2、clear、reset ...),如何使其在 shadow dom 中工作?)

最佳答案

我刚刚遇到了与原始问题相同的问题,即:定义一次一些全局规则,例如 <h3>元素并从中受益 ShadowDOM

不,css-variables 适合这个东西,因为即使我已经定义了一次,比方说,fontcolor <h3> 的变量,我仍然需要检查每个阴影样式表并添加一个使用它们的 CSS 规则。

在撰写本文时(是的,我们现在是 2019 年)最短的标准化解决方案确实是导入一些全局通用的 CSS。在 Chrome、Firefox 和 Anaheim(Edge on Chromium)中完美运行。

它仍然需要添加一个 @import在每个组件中都有规则,所以仍然很昂贵(从编码/维护 POV 来看,样式表只获取一次),但这是我们现在可以支付的最低价格。

关于javascript - 如何在 shadow dom 中使用全局 css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35694328/

相关文章:

javascript - 为什么 console.log() polyfill 不使用 Function.apply()?

javascript - Vue JS,GLTF 加载器错误 "currently no loaders are configured"

javascript - 在 JavaScript 中与状态混合

web-component - Angular 2 组件可以被其他使用 HTML 导入的非 Angular 应用程序使用吗?

javascript - 如何将 Shadow DOM delegatesFocus 选项与 Polymer 一起使用?

javascript - Vanilla 网络组件结构

javascript - 当滚动条位于shadow-dom之外时,分部分加载 polymer iron-list

javascript - Web 组件的可用高度和宽度?

javascript - 导出 webpack 的库

javascript - 如何使用iframe或shadow dom创建跨浏览器子文档?