一、postcss插件简介及安装

PostCSS是一款使用插件去转换CSS的工具,有许多非常好用有趣的插件,例如autoprefixer,press或者postcss-preset-env等。这些都是基于postcss插件去实现的。postcss插件需要结合webpack打包工具去一起使用,另生产样式文件时还可以结合gulp使用。
安装方法:先安装插件

npm i -s postcss-preset-env

再配置文件:使用.postcssrc(JSON),.postcssrc.js或者postcss.config.js

二、插件介绍

1.postcss-advanced-variables

可以像scss一样,在css文件中写变量 、条件、循环语法。
官方文档

2.postcss-partial-import

可以使用@import引入别的模块样式
官方文档

3.postcss-px-to-viewport(移动端适配方案)☆☆☆

适合于移动端适配方案开发,将px单位转化成vh,vw百分比
配置如下:

'postcss-px-to-viewport': {
      unitToConvert: "px", // 默认值`px`,需要转换的单位
      viewportWidth: 375, // 视窗的宽度,对应设计稿宽度
      viewportHeight: 667, // 视窗的高度, 根据375设备的宽度来指定,一般是667,也可不配置
      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数
      propList: ["*"], // 转化为vw的属性列表
      viewportUnit: "vw", // 指定需要转换成视窗单位
      fontViewportUnit: "vw", // 字体使用的视窗单位
      selectorBlaskList: [".ignore-"], // 指定不需要转换为视窗单位的类
      mediaQuery: false, // 允许在媒体查询中转换`px`
      minPixelValue: 1, // 小于或等于`1px`时不转换为视窗单位
      replace: true, // 是否直接更换属性值而不添加备用属性
      exclude: [], // 忽略某些文件夹下的文件或特定文件
      landscape: false, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape)
      landscapeUnit: "vw", // 横屏时使用的单位
      landscapeWidth: 1134 // 横屏时使用的视窗宽度
    }

注意:
1、@media 默认不转化px,可配置mediaQuery: true
2、@keyframes 默认不转化px,可手动转vw
官方中文文档

4.autoprefixer

可根据不同浏览器生产兼容浏览器样式前缀,不用手动一一添加前缀
官方中文文档

5.precss

可以像scss一样,在css文件中写混合、模块化语法。
官方中文文档

更多有趣的插件请☞这里

6.postcss-cssnext

7.postcss-modules

8.stylelint

9.LostGrid

三、配置

安装好项目依赖后postcss在根目录下配置postcss.config.js文件,代码如下

module.exports = {
  plugins: {
    "postcss-partial-import": {},
    precss: {},
    "postcss-advanced-variables": {},
    autoprefixer: {},
    'postcss-px-to-viewport': {
      unitToConvert: "px", // 默认值`px`,需要转换的单位
      viewportWidth: 375, // 视窗的宽度,对应设计稿宽度
      viewportHeight: 667, // 视窗的高度, 根据375设备的宽度来指定,一般是667,也可不配置
      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数
      propList: ["*"], // 转化为vw的属性列表
      viewportUnit: "vw", // 指定需要转换成视窗单位
      fontViewportUnit: "vw", // 字体使用的视窗单位
      selectorBlaskList: [".ignore-"], // 指定不需要转换为视窗单位的类
      mediaQuery: false, // 允许在媒体查询中转换`px`
      minPixelValue: 1, // 小于或等于`1px`时不转换为视窗单位
      replace: true, // 是否直接更换属性值而不添加备用属性
      exclude: [], // 忽略某些文件夹下的文件或特定文件
      landscape: false, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape)
      landscapeUnit: "vw", // 横屏时使用的单位
      landscapeWidth: 1134 // 横屏时使用的视窗宽度
    }
  }
}


后续更新。。。

Logo

前往低代码交流专区

更多推荐