4

我正在做一个 lit-element 项目,但我遇到了一个问题,reset.css无法应用于包装的 Web 组件shadow-root

我已经尝试过这种方式,但出现以下错误。

Refused to apply style from 'http://localhost:8080/style/static/reset.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

我试过的代码是这样的:

<script>
  var css = new CSSStyleSheet()
  css.replace('@import url("./style/static/reset.css")')
  document.adoptedStyleSheets = [css]
</script>

这被放入一个 html 文件中。

如何避免此错误,并将 reset.css 应用于 Web 组件?

4

1 回答 1

2

将替换导入应用于shadowroot而不是文档是否有帮助?

const node = document.createElement('div')
const shadow = node.attachShadow({ mode: 'open' })
shadow.adoptedStyleSheets = [sheet]

https://wig.github.io/construct-stylesheets/#using-constructed-stylesheets

编辑——为清楚起见添加:

以上地址将可能包含 @import 语句的样式表应用到原始问题所指的框架上,阴影根节点(元素),但是,因为您的代码试图将实例化的工作表应用于文档,对我来说,问题变得有点模糊。

您指出的错误似乎表明代码试图应用在另一个文档中创建的样式表:

如果您尝试采用在不同文档中构建的 CSSStyleSheet,则会抛出“NotAllowedError”DOMException。

https://github.com/WICG/construct-stylesheets/blob/gh-pages/explainer.md

于 2019-08-02T18:07:16.470 回答