【问题标题】:Media Query not working with CSS/Style loader and Webpack3媒体查询不适用于 CSS/样式加载器和 Webpack3
【发布时间】:2018-01-07 22:56:12
【问题描述】:

我的 CSS 使用 css-loaderstyle-loader,但所有媒体查询都不起作用。我正在使用"webpack": "^3.4.1""css-loader": "^0.28.4""style-loader": "^0.18.2"

这是我的 Webpack 配置:

const ExtractTextPlugin = require('extract-text-webpack-plugin')

rules: [{
  test: /\.css$/,
  use: [{
    loader: 'style-loader'
  }, {
    loader: 'css-loader',
    options: {
      modules: true,
      localIdentName: '[name]-[local]-[hash:base64:6]',
      camelCase: true
    }
  }]
}]
...
plugins: [
  new ExtractTextPlugin({
    filename: 'style.[chunkhash:6].css',
    allChunks: true
  })
]

我的 css 文件是这样的:

.container{
  position: relative;
  margin: 30px 15px;
  padding: 50px 15px;
  background: #fff;
}
@media (max-width: 768px) {
  .container{
    background: #fbfbfb;
  }
}

我在React 代码中导入这个 CSS 文件,如下所示:

import styles from './Component.css'

【问题讨论】:

  • 我的webpack 4也有同样的问题,你找到原因了吗? :) 谢谢!

标签: css reactjs webpack-style-loader css-loader webpack-3


【解决方案1】:

尝试使用此代码

.container{
  position: relative;
  margin: 30px 15px;
  padding: 50px 15px;
  background: #fff;
}
@media only screen and (max-width:768px){
  .container{
    background: #c00;
  }
}
<div class="container">
content her
</div>

【讨论】:

【解决方案2】:

我认为问题在于您声明了 ExtractTextPlugin,但您使用的是 css 和样式加载器。

查看此设置以供参考:

插件

 plugins: [
    new ExtractTextPlugin({ 
      filename: "css/bundle.css", 
      allChunks: true,
      disable: process.env.NODE_ENV !== 'production'
    }),
  ]

加载器

  {
    test: /\.css$/,
    loader: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: 'css-loader?importLoaders=1'
    })
  }

这将在生产构建中使用 ExtractTextPlugin,并在使用 webpack-dev-server 时回退到 style-loader,因为 ETP 不支持热重载。

【讨论】:

  • 对于生产部署,我正在使用这样的东西:{ test: /\.css$/, use: ExtractTextPlugin.extract(['css-loader?modules,localIdentName="[name]-[local]-[hash:base64:6]",camelCase']) } new ExtractTextPlugin({ filename: 'style.[chunkhash:6].css', allChunks: true }) 在这里我的媒体查询也不起作用。我将我的 CSS 类放在这样 className = {styles.container} 上,而生成的 css 的类型是这样的:.-UsersList-container-3L5uHG-
  • 更改后,没有任何类添加到任何 HTML 元素,因此我的页面没有样式。我的 Webpack 配置可以在这里找到:github.com/ssolanki/smallcase
猜你喜欢
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2015-07-25
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
相关资源
最近更新 更多