2021-06-01

pxtorem进行移动端适配

在基于umi.js搭建的目录config.js中

extraPostCSSPlugins: [
    pxtorem({
      rootValue: 100, //这里根据设计稿大小配置,一般是375
      propList: ['*'],
      selectorBlackList: ['.am-', '.norem-'], // 过滤掉.am-开头的class,不进行rem转换
    }),
  ],

rem是基于root根元素的fontsize大小来计算的
所以不同的移动设备,屏幕宽度不一样,对应的根元素的fontsize也要同比变化,以实现自适应

所以需要实现初始化根节点fontsize的方法

export function initRem(): void {
  const docEle = document.documentElement;
  function setHtmlFontSize() {
    let deviceWidth = docEle.clientWidth || window.innerWidth;
    if (deviceWidth >= 450) {
      deviceWidth = 450;
    }
    if (deviceWidth <= 320) {
      deviceWidth = 320;
    }
    const fontSize = deviceWidth / 7.5;
    docEle.style.fontSize = fontSize.toFixed(3) + 'px';
  }
  setHtmlFontSize();
  window.addEventListener('resize', setHtmlFontSize);
}

在app.js/app.ts中,引用调用该initRem方法

import { initRem} from '@/utils/rem';
initRem();

完事!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值