首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CSS样式注入阴影根目录

将CSS样式注入阴影根目录
EN

Stack Overflow用户
提问于 2022-03-01 17:55:58
回答 1查看 933关注 0票数 0

我在preact项目中创建一个Shadow DOM,然后将样式元素注入Shadow根,如下所示:

代码语言:javascript
复制
import style from "./layout/main.css";

loader(window, defaultConfig, window.document.currentScript, (el, config) =>
{
    const shadowHost = document.querySelector('#widget-_hw');
    shadowHost?.attachShadow({ mode: 'open' });
    const shadowRoot = document.querySelector('#widget-_hw')?.shadowRoot
    const renderIn = document.createElement('div');
    const styleTag = document.createElement('style');
    styleTag.innerHTML = style;
    shadowRoot?.appendChild(styleTag); 
    renderIn.setAttribute('id', 'render-div');
    shadowRoot?.appendChild(renderIn);
    render(h(App, { ...config, element: el }), renderIn)
}
);

当我做console.log (样式)时,我得到了所有的CSS类,如下图所示,但是当我打印阴影根目录的console.log时

样式元素如下所示:

代码语言:javascript
复制
<Style>[object object]<Style>

您可以看到屏幕截图,以进一步参考。

我Webpack的配置是这样的:

代码语言:javascript
复制
module: {
      rules: [
        // packs SVG's discovered in url() into bundle
        { test: /\.svg/, use: 'svg-url-loader' },
        {
          test: /\.css$/i,
          use: [
            {
              loader: 'style-loader',
              options: { injectType: 'singletonStyleTag' }
            },
            {
              // allows import CSS as modules
              loader: 'css-loader',
              options: {
                modules: {
                  // css class names format
                  localIdentName: '[name]-[local]-[hash:base64:5]'
                },
                sourceMap: isDevBuild
              }
            }
          ]
        },

有人能帮我找到解决这个问题的办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-02 14:24:26

解决办法是:在webpack中完全拆下装载机。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71312717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档