700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 解决部分安卓机 自带浏览器 上h5页面 rem布局 受到 真机字体影响的问题

解决部分安卓机 自带浏览器 上h5页面 rem布局 受到 真机字体影响的问题

时间:2022-07-02 00:43:12

相关推荐

解决部分安卓机 自带浏览器 上h5页面 rem布局 受到 真机字体影响的问题

背景

最近有个 h5项目 由于真机(部分安卓手机)将字体调大 导致 h5 页面布局发生了错误

原因

影响了 内置 webview html 上 font-size 大小 (设置的大小 与 实际显示的 大小不一致) 例如 你将真机默认字体放大 html font-size 实际大小也会变大

解决

1.计算 出 真机环境下 放大 或缩小的比例

2. 再将 设置的 实际 的值 进行调整 重新设置 html的 font-size

白话 说的 就是 假设 你设置的 rem 为40px 而实际上 真机展示的是 50px 这时候 你想要在真机上显示 40px 你就得 设置 40*(40/50)px = 32px 这样 真机就会放大显示为 40px 问题就得到解决了

代码

以项目中最常见得 flexible.js 适配方案

function refreshRem(){var width = docEl.getBoundingClientRect().width;if (width / dpr > 540) {width = 540 * dpr;}var rem = width / 10;docEl.style.fontSize = rem + 'px';flexible.rem = win.rem = rem;// 上面是源码// 下面是新加的// 通过getComputedStyle 获取浏览器 计算后的html font-size 真实大小let real_rem = ~~(window.getComputedStyle(docEl).fontSize.replace('px',''))// 再进行比较 不一致 则进行重新赋值 以达到不受真机字体大小 影响的效果if(rem !== real_rem) {docEl.style.fontSize = rem*(rem/real_rem) + 'px';}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。