• 本次项目使用的是:vue cli3搭建

    第一步:安装postcss-px-to-viewport

  • npm 安装

    1. npm install postcss-px-to-viewport --save-dev
  • yarn 安装

    1. yarn add -D postcss-px-to-viewport

    第二步:配置参数

  • 在项目根目录下添加 vue.config.js或者.postcssrc.js文件,在文件内添加配置(本项目是vue.config.js)

    1. const pxtovw = require('postcss-px-to-viewport')
    2. module.exports = {
    3. css: {
    4. loaderOptions: {
    5. postcss: {
    6. plugins: [
    7. new pxtovw({
    8. unitToConvert: 'px', //需要转换的单位,默认为"px"
    9. viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度
    10. // viewportHeight: 1334,//视窗的高度,根据375设备的宽度来指定,一般指定667,也可以不配置,此处未配置
    11. unitPrecision: 5, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
    12. propList: ['*'], // 能转化为vw的属性列表,*表示匹配所有,!表示不匹配
    13. viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
    14. fontViewportUnit: 'vw', //字体使用的视口单位
    15. selectorBlackList: ['.ignore', '.hairlines'], //指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
    16. minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
    17. mediaQuery: false, // 不允许在媒体查询中转换`px`,默认是false
    18. replace: true, //是否直接更换属性值,而不添加备用属性
    19. exclude: [/node_modules/], //忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
    20. // landscape: true, //是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape),此项目仅用在移动端,未配置
    21. // landscapeUnit: 'vw', //横屏时使用的单位
    22. // landscapeWidth: 1134 //横屏时使用的视口宽度
    23. })
    24. ]
    25. }
    26. }
    27. }
    28. }

    第三步:重新运行项目,使配置文件生效