一个VUE已成型的项目自适应多种屏幕分辨率不是办法的办法

7 篇文章 0 订阅
VUE已成型的项目改成自适应多种分辨率 尝试过一些 插件 lib-flexible px2rem-loader postcss-pxtorem等等 感觉对pc端且已成型的项目不怎么友好,各种配置报错,又搞不懂。。。。就想了个蠢办法来实现 当然能达到这种效果全部归结于 直接把html根元素的字体大小设置为1px 哭了。。。

当然这样搞是不科学的,浏览器设定的最小字体大小为12px,所以浏览器自动把html{font-size: 1px} 识别为html{font-size: 12px},所以效果也就是1rem = 12px。但是我ok了
1rem为何不能为1px

在工具函数文件夹下创建rem.js

rem.js

// 基础设置为1px
const baseSize = 1
// 设置 rem 函数
function setRem () {
  // 保留后四位  String(number).replace(/^(.*\..{4}).*$/,"$1")
  const scale = Number(String(document.documentElement.clientWidth / 1920).replace(/^(.*\..{4}).*$/,"$1"))
  // 设置页面根节点字体大小
  document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
// 首次加载设置 rem
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {
  setRem()
}
在main.js中引入rem.js
import './utils/rem'
然后全局修改所有的css单位 px转rem 包括组件的css(例如element 我是把css库下载到本地的src下)

更新

html的字体大小设置为font-size:62.5% 浏览器默认字体大小是16px,rem与px关系为:1rem = 10px,

参考图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值