作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 https://material-ui.com/ shadow dom 中的组件,并且需要一种将这些样式注入(inject)到 shadow dom 中的方法。默认 material-ui
, 它使用 jss
under the hood 在页面头部注入(inject)样式。
这甚至可能吗?任何人都可以举个例子吗?
最佳答案
这就是我的 Web 组件的样子,它是一个 Web 组件,它呈现一个包含 Material-ui 样式的 React 应用程序。
import * as React from 'react';
import { render } from 'react-dom';
import { StylesProvider, jssPreset } from '@material-ui/styles';
import { create } from 'jss';
import { App } from '@myApp/core';
class MyWebComponent extends HTMLElement {
connectedCallback() {
const shadowRoot = this.attachShadow({ mode: 'open' });
const mountPoint = document.createElement('span');
const reactRoot = shadowRoot.appendChild(mountPoint);
const jss = create({
...jssPreset(),
insertionPoint: reactRoot
});
render(
<StylesProvider jss={jss}>
<App />
</StylesProvider>,
mountPoint
);
}
}
customElements.define('my-web-commponent', MyWebComponent);
insertionPoint
在 jss 上到 shadow root 内的实际 react root 将告诉 jss 将这些样式插入到该 shadow root 中。
关于google-chrome-extension - 如何使用 cssinjs/jss 在 shadow root 中挂载样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430119/
为了各种目的,我们使用了大量不同粗细的自定义字体。现在我们的整个堆栈都在使用带有 JSS 主题和样式的 Material UI,我们想摆脱最后几个 .scss我们的文件夹架构中的文件。 到目前为止,所
我正在尝试使用 https://material-ui.com/ shadow dom 中的组件,并且需要一种将这些样式注入(inject)到 shadow dom 中的方法。默认 material-
我是一名优秀的程序员,十分优秀!