关于移动端适配postcss-pxtorem

postcss-pxtorem是px转rem的插件,是移动端比较好的适配方案

1.安装postcss-pxtorem

npm i postcss-pxtorem@4.0.1 --save

*因为我使用的是vant2,所以postcss-pxtorem的版本不会太高.
*如果报错:“Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.”报错的意思是postcss-pxtorem为8.0,但实际上官网最新版本为6.0(有可能是6.0版本与vant不兼容),所以直接把postcss-pxtorem版本降成对应的版本就好了

2.根目录下创建postcss.config.js文件,内容如下

module.exports = {
    plugins: {
      autoprefixer: {},
      "postcss-pxtorem": {
        "rootValue": 75,//750宽的画稿
        "propList": ["*"]
      }
    }
  }

3.utils文件夹下(没有就新建一个),新建一个rem.js

// 基准大小
const baseSize = 75 //跟postcss.config.js中rootValue的值是一致的
// 设置 rem 函数
function setRem () {
 // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
 const scale = document.documentElement.clientWidth / 750
 // 设置页面根节点字体大小
 document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
 console.log("fontsize", document.documentElement.style.fontSize);
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {
 setRem()
}

4..main.js引入rem.js文件

import '@/utils/rem.js'

*注意,如果有引入import 'lib-flexible/flexible.js',一定要注释掉,我发觉在rem.js中每次尺寸变化时, document.documentElement.style.fontSize计算出来的值都会被另一值覆盖,后来发现lib-flexible搞的鬼,估计lib-flexible应该是另一种适配解决方案,没必要与postcss-pxtorem共存.

5.在入口文件(public/index.html)头部加上

 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=0.5, user-scalable=no,user-scalable=yes">

6.最后启动,大功告成!

npm run dev


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值