【问题标题】:How to use css-modules and bootstrap at same time?如何同时使用 css-modules 和 bootstrap?
【发布时间】:2017-10-10 14:05:51
【问题描述】:

我在我的项目中使用电子反应样板,这个样板使用 css 模块进行样式设置。 我无法在同一个地方使用引导程序和自定义样式。 假设我有一个类似 sn-p 的代码,

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

在这种情况下,'row' 是一个引导类名,'custom-css' 是我自己的样式类名。 请帮我找到解决这些问题的方法,以便我可以同时使用 css-modulesbootstrap...

【问题讨论】:

    标签: html css twitter-bootstrap reactjs css-modules


    【解决方案1】:

    谢谢大家,我发现它可以通过在其周围添加 {} 来工作

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

    【讨论】:

      【解决方案2】:

      我有点坚持这个(关于如何加载 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',
                              }),
                          ],
                      },
                  }
              ]
          },
      

      alechill 完美覆盖其余部分

      【讨论】:

        【解决方案3】:

        您需要从特定于该组件的模块文件中导入您的 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}` />
        

        所以,只要你在某个地方加载引导 CSS,就可以同时使用两者

        【讨论】:

          猜你喜欢
          • 2021-07-14
          • 2019-06-01
          • 2017-01-18
          • 1970-01-01
          • 2017-08-06
          • 2020-10-22
          • 2018-04-04
          • 2018-10-06
          • 2020-08-01
          相关资源
          最近更新 更多