vue 适配大屏解决方案

4 篇文章 0 订阅
2 篇文章 0 订阅

1、使用 postcss-px2rem

// .postcssrc.js 配置
"postcss-pxtorem": {
   "rootValue": 16,//根节点字体的大小
    "propList": ["*"]
}
//rem.js 
const baseSize = 16
// 设置 rem 函数
function setRem() {
    const scale = document.documentElement.clientWidth / 1920
     // let scale = document.documentElement.clientWidth || document.body.clientWidth;
     // 设置页面根节点字体大小 最大为baseSize的两倍
    document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function() {
    setRem();
    console.log('kkjx')
}

在main.js 中引用rem.js
在这里插入图片描述
2、使用postcss-px2rem+lib-flexible

   // .postcssrc.js 配置
   "postcss-pxtorem": {
   	// rootValue的值是根据根据设计图的宽度决定的
   	//使用lib-flexible是默认分成十等份的 如果设计图是750的话 那个值就是75 同样的
   	//  这里我是按照10等分来划分的,大家也可以按照24等分的话就是80,但是一定记得要去改lib-flexible源码才可以
      "rootValue": 192,//根节点字体的大小
       "propList": ["*"]
   }
 // 自定义页面元素的fontsize,方便rem的配置
 function refreshRem(){
     var width = docEl.getBoundingClientRect().width;
     //屏幕信息,屏幕宽度,bound:绑定;rect:矩形
     // if (width / dpr > width) {//修改这里
     //     width = width * dpr;
     // }
     var rem = width / 10;
     docEl.style.fontSize = rem + 'px';
     flexible.rem = win.rem = rem;
 }
 // 自定义页面元素的fontsize,方便rem的配置
function refreshRem(){
    var width = docEl.getBoundingClientRect().width;
    //屏幕信息,屏幕宽度,bound:绑定;rect:矩形
    // if (width / dpr > 640) { //这里的意思是宽度大于640 fontSize不会再发生变化 可以按照自己的需求进行调整
    //     width = 640 * dpr;
    // }
    var rem = width / 10;
    docEl.style.fontSize = rem + 'px';
    flexible.rem = win.rem = rem;
}

此时宽度用px就可以适配所以的网页大小了,高度也可以使用px去做自适应,但是前提是html,body等父元素的设置上100%,不然里面的元素写100%无法继承高度

但是需要注意的是行内样式设置的px无法被转换成自适应的rem
在这里插入图片描述

需要注意的点:lib-flexible给body元素加上了12px的字体大小,官方解释:body上设置12 * dpr的font-size值,为了重置页面中的字体默认值,不然没有设置font-size的元素会继承html上的font-size,变得很大
大家可以根据自己的项目需要来,如果不需要body加字号,可去源码中进行注销

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值