Android部分webview rem计算误差记录

开发webapp过程中 发现安卓某些机型 rem 计算有误差 目前仅发现 三星s7 s8 等曲面屏手机存在该问题
下面记录解决方案

document.documentElement.style.fontSize=document.documentElement.offsetWidth/7.5+"px";
var html = document.getElementsByTagName('html')[0];
var settedFs = parseInt(html.style.fontSize); 
var realFs = parseInt(window.getComputedStyle(html).fontSize);
var whileCount = 0;
        
        
while(true) {
    var realFs = parseInt(window.getComputedStyle(html).fontSize);
    var delta = realFs - settedFs;
    console.log(settedFs,realFs)
    if (Math.abs(delta) != 0) //不相等
    {
        html.setAttribute('style', 'font-size:'+settedFs *(settedFs/realFs) + 'px!important');
                //settedFs/realFs 计算比实际值小N倍  然后在原基础上在放大N倍
    } else 
        break;
                
    if (whileCount++ > 100) //为了避免死循环
        break
}

你可能感兴趣的:(Android部分webview rem计算误差记录)