当前位置:网站首页 > HTML与CSS基础 > 正文

webpack5学习与实战-(十三)-postcss处理css3兼容性前缀

一,概述

postcss是一个用js工具和插件转换css代码的工具。比如说可以使用Autoprefixer插件自动获取浏览器流行度和能够支持的属性,并且根据这些数据帮助我们自动地为css规则添加前缀,将最新的css语法转化成大多数浏览器能够理解的语法。

二,具体的应用

第一步,安装依赖

npm i mini-css-extract-plugin css-loader postcss-loader -D 

这里需要解释一下,mini-css-extract-plugin插件是替换style-loader插件的(都是把css-loader解析后的代码添加到html上,不同的是style-loader直接添加到html上,而mini-css-extract-plugin是采用link资源的方式添加。所以这里直接使用mini-css-extract-plugin)

第二步,在module的rules中配置

 { 
    test: /\.(scss|css)$/, use: [ { 
    loader: MiniCssExtractPlugin.loader, options: { 
    // 当前的css所在的文件要相对到dist文件夹 publicPath: "../../" } }, "css-loader", "postcss-loader", "sass-loader" ] }, 

注意这里的use数组中的配置,是有顺序要求的,比如我这里是使用scss预处理器,还安装了sass-loader。
那么写出来的style.scss文件,先是经过sass-loader编译处理成常规的css,然后,再经由postcss-loader添加浏览器兼容前缀。再经过css-loader解析成webpack能够理解的模块。最后经由MiniCssExtractPlugin来通过link链接到index.html上。
写如下的css代码,会发现并没有添加兼容浏览器的 css3前缀,这是因为还需要安装一个插件来实现这一个功能。
在这里插入图片描述

第三步,安装autoprefixer

npm i autoprefixer -D 

然后再在项目根目录下创建一个文件:postcss.config.js,这个文件是专门用来配置css的插件的。

第四步,配置postcss.config.js

module.exports = () => { 
    return { 
    plugins: { 
    autoprefixer: { 
    overrideBrowserslist: [ "Android 4.1", "iOS 7.1", "Chrome > 31", "ff > 31", "ie >= 8" ] } } }; }; 
module.exports = () => { 
    return { 
    plugins: { 
    autoprefixer: { 
   } } }; }; 

而会在package.json中配置浏览器兼容:

"browserslist": [ "> 0.1%", "last 2 versions" ], 
尽量不要用browserslist最好放在.browserslistrc或者package.json内 postcss.config.js内 overrideBrowserslist 的优先级高于 package.json的browserslist,且不能为空,否则会不生效。 

于是重启项目,则会看到前缀了:
在这里插入图片描述

到此这篇webpack5学习与实战-(十三)-postcss处理css3兼容性前缀的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • webpack5热更新失效,且只有css修改后失效?2024-11-30 11:27:07
  • css3画立体图形2024-11-30 11:27:07
  • css中用两种方法实现两列布局,左列定宽200px,右列自适应宽2024-11-30 11:27:07
  • css中三栏布局之两边宽度固定,中间宽度自适应-5种方法总结——flex布局、浮动布局、绝对定位布局、圣杯布局、双飞翼布局2024-11-30 11:27:07
  • 网络爬虫开发(二)-爬虫基础——使用cheerio库解析html并提取img的src属性& 使用download库批量下载图片& encodeURI()函数-解决若有中文文件名,需使用base64编码2024-11-30 11:27:07
  • 前端项目,css样式获取到了,没能渲染页面2024-11-30 11:27:07
  • css3动画的使用2024-11-30 11:27:07
  • 移动端H5界面 前端html app 自动清除引入的css js缓存方法2024-11-30 11:27:07
  • lang=“scss“动态拼接变量 设置背景图2024-11-30 11:27:07
  • CSS:父元素使用了Flex布局 导致子元素高度未撑开2024-11-30 11:27:07
  • 全屏图片