收藏
回答

微信小程序中H5的样式的rem计算出错,微信浏览器打开正常

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug Android 13 小米13 pro 8.0.63

自定义一个方法,传入设计稿宽度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计算正常


最后一次编辑于  2025-09-17
回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 本次回答由AI生成
    2025-09-16
    有用
    回复 1
    • 欣~一帘幽梦
      欣~一帘幽梦
      2025-09-16
      因保密机制无法提供截图和代码,关键代码已罗列。通过计算1rem的宽度,然后动态设置html的font-size标准大小,然后实现css的换算自适应
      2025-09-16
      回复
登录 后发表内容