vue工程px转rem,postcss-px2rem插件的使用,移动端适配方案

vue工程实现px转rem

使用px单位在不同宽高比设备上显示样式比例有差异,rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。可以使用rem实现自适应。

postcss-px2rem:是可以将代码中px自动转化成对应的rem的一个插件.
先安装插件

npm i postcss-px2rem --save -dev

在postcss.config.js中添加配置

请添加图片描述

module.exports = {
  "plugins": {
    "postcss-import": {},
    "postcss-url": {},
    // to edit target browsers: use "browserslist" field in package.json
    "autoprefixer": {
      "browsers": ['last 10 Chrome versions', 'last 5 Firefox versions', 'Safari >= 8']
     },
     // 1rem = 20px
     'postcss-px2rem':{'remUnit':20}    //配置rem基准值,75是iphone6标准
  }
}

然后再新建一个js文件 setRem.js 这个可以实现在分模块打包的情况下针对每一个模块 配置不同的remSize来实现不同的模块有不同的转换基数。

export default function setRemInit(baseWidth = 750) {
// baseSize 是用来设置html font-size的大小 。
function setRem(){
  const dpr = window.devicePixelRatio;//当前显示设备的物理像素分辨率与CSS像素分辨率之比。
  const currentWidth = document.documentElement.clientWidth;
  let remSize = 0;
  let scale = 0;
  let baseSize = 20; // 1rem = 20px
  scale = currentWidth / baseWidth; // 当前页面宽度相对于 750 px(设计稿尺寸)的缩放比例,可根据自己需要修改。
  remSize = baseWidth / baseSize; 
  remSize = remSize * scale; 
  document.documentElement.style.fontSize = remSize + 'px'; // 设置页面根节点字体大小
  document.documentElement.setAttribute('data-dpr', `${dpr}`);
}
  // 初始化
  setRem();
  // 改变窗口大小时重新设置 rem
  window.addEventListener('resize', setRem);
}

在对应模块index.js引用新增的js

import setRemInit from '@/plugins/setRem' ///rem
setRemInit()

over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值