vue项目使用 postcss-px-to-viewport 适配移动端px自动转vw

vue项目使用 postcss-px-to-viewport 适配移动端px自动转vw

1.vue2 搭配 postcss px转vw 继续看此文章
2.vue2 搭配 postcss px转rem  查阅另一个文章:详见【还没写的】
3.vue3 搭配 postcss 查阅另一个文章:详见【还没写的】

【1】安装

安装:postcss-px-to-viewport


//1.npm方式:
npm install postcss-px-to-viewport --save-dev

//2.yarn安装:
yarn add -D postcss-px-to-viewport

安装:postcss-loader


//1.npm方式:
npm install postcss-loader postcss-px-to-viewport --save-dev

//2.yarn安装:
yarn add -D postcss-loader postcss-px-to-viewport

【2】配置

vue-cli3搭建的结构:


// vue.config.js 文件
module.exports = {
  //...
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require("postcss-px-to-viewport")({
            unitToConvert: "px",// 要转化的单位
            viewportWidth: 750,// UI设计稿的宽度
            unitPrecision: 3,// 转换后的精度,即小数点位数
            propList: [
              "*"
            ],// 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
            viewportUnit: "vw",// 指定需要转换成的视窗单位,默认vw
            fontViewportUnit: "vw",// 指定字体需要转换成的视窗单位,默认vw
            landscapeUnit: 'vh',// 横屏时使用的单位
            landscapeWidth: 667,// 横屏时使用的视口宽度
            selectorBlackList: [],// 指定不转换为视窗单位的类名
            minPixelValue: 1,// 默认值1,小于或等于1px则不进行转换
            mediaQuery: false,// 是否在媒体查询的css代码中也进行转换,默认false
            replace: true,// 是否转换后直接更换属性值
            // landscape: false, // 是否处理横屏情况
            exclude: /(\/|\\)(node_modules)(\/|\\)/, // 设置忽略文件,用正则做目录名匹配
          })
        ]
      }
    }
  }
}

vue-cli2搭建的结构:


// .postcssrc.js 文件
module.exports = {
  "plugins": {
    // "postcss-import": {},
    "postcss-url": {},
    // to edit target browsers: use "browserslist" field in package.json
    // "autoprefixer": {},
    "autoprefixer": {
      path: ['./src/*']
    },
    "postcss-import": {},
    "postcss-px-to-viewport": {
        "viewportWidth": "1920", // 视窗的宽度,对应的是我们设计稿的宽度
        "viewportHeight": "1080", // 视窗的高度
        "unitPrecision": 2, //指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
        "viewportUnit": "vw", //指定需要转换成的视窗单位,建议使用vw
        "selectorBlackList": [], //指定不转换为视窗单位的类
        "minPixelValue": 1, // 小于或等于`1px`不转换为视窗单位
        "mediaQuery": false, // 允许在媒体查询中转换`px`
        // "exclude": [/(\/|\\)(dataExpress)(\/|\\)/, /(\/|\\)(css)(\/|\\)/],
        // "exclude": /(\/|\\)(dataExpress)(\/|\\)/
    },
  }
}

【3】重启项目

vue.config.js 修改这个文件需要重启项目
.postcssrc.js 可以不需要重启

【4】温馨提示:

1.vue2 搭配 postcss px转rem  查阅另一个文章:详见【还没写的】
2.vue3 搭配 postcss 查阅另一个文章:详见【还没写的】

postcss 在元素标签上面的style链式样式不能生效 ,只能转化样式文件或者style标签

<div style="width:200px;"></div> 不能转
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值