如何同时使用CSS模块和 Bootstrap ?

v2g6jxz6  于 2022-12-08  发布在  Bootstrap
关注(0)|答案(3)|浏览(179)

我在我的项目中使用了electron-react-boilerplate,而这个boilerplate使用了css-modules作为样式。我在同一个地方使用引导和自定义样式时遇到了麻烦。假设我有一个代码片段,比如,

<div className="container">
  <div className="row custom-css">
    // other codes...
</div>

在这种情况下,“row”是一个 Bootstrap 类名,“custom-css”是我自己样式类名。请帮助我找到一些解决这些问题的方法,这样我就可以一起使用css-模块和** Bootstrap **...

hc2pp10m

hc2pp10m1#

您需要从特定于此组件的模块文件中导入CSS模块样式,然后通过返回的对象将它们插入到类名中...
MyComponent.css

.myCustomClassName {
  color: #fff;
}

MyComponent.js

import styles from './MyComponent.css';

<div className=`row ${styles.myCustomClassName}` />

当输出为HTML时,这将变成类似于...

<div class="row MyComponent__myCustomClassName___n1cC4ge}` />

因此,只要您在某个地方加载 Bootstrap CSS,就应该在这两个地方都能找到

js81xvg6

js81xvg62#

谢谢,伙计们,我发现它的工作添加{}左右

<div className={`row ${styles.myCustomClassName}`} />
8i9zcol2

8i9zcol23#

我有点坚持这个(关于如何加载 Bootstrap )。我在我的webpack配置文件中创建了这个粗略的编辑。

{
        test: /(\.bootstrap\.css$|bootstrap-theme.css|bootstrap.css)/,
        use: [
            {
                loader: 'style-loader',
            },
            {
                loader: 'css-loader',
                options: {
                    minimize: true || {/* CSSNano Options */}
                }
            },
        ],
    },
    {
        test: /^((?!\.bootstrap|bootstrap-theme).)*\.css$/,
        use: [
            {
                loader: 'style-loader',
            },
            {
                loader: 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',
            },
            {
                loader: require.resolve('postcss-loader'),
                options: {
                    // Necessary for external CSS imports to work
                    // https://github.com/facebookincubator/create-react-app/issues/2677
                    ident: 'postcss',
                    plugins: () => [
                        require('postcss-flexbugs-fixes'),
                        autoprefixer({
                            browsers: [
                                '>1%',
                                'last 4 versions',
                                'Firefox ESR',
                                'not ie < 9', // React doesn't support IE8 anyway
                            ],
                            flexbox: 'no-2009',
                        }),
                    ],
                },
            }
        ]
    },

其余的都被一层薄薄的雪覆盖着。

相关问题