自定义一个方法,传入设计稿宽度375和rem转换成px的比例为100,该方法自动创建一个隐藏dom,然后动态设置宽度为1rem,然后获取该元素的计算宽度,然后插入style样式,设置媒体查询,通过设置font-size的形式来实现页面的自适应。老项目,项目很繁杂。问题机型华为荣耀,华为鸿蒙,小米
获取元素1rem的计算宽度:
const defaultFontSize = parseFloat(window.getComputedStyle(dom, null).getPropertywalue("width"));
媒体查询的样式代码是:
"@media screen and (min-width:“+
window.innerWidth +
"px) {html{font-size:" +
(window.innerwidth / (designMidth / rem2px) / defaultFontSize) * 100 +"%;}}";
页面样式正常使用如下:
body{
max-width: 6.4rem;//相对于设计稿,说明最大宽度为640px
}
项目中没有自动将rem换算成px的loader,在微信小程序中,通过调试工具发现页面的max-width异常,比如411px的innerWidth,计算后max-width为100多px。在微信浏览器直接打开页面,max-width计算正常
