首屏整屏区块在手机浏览器里底部内容被工具栏压住,滚动后高度又跳变。乍看像缓存或者权限的锅,追下去往往不是。

.hero { min-height: 100vh; min-height: 100dvh; }
# 回退
:root { --vh: 1vh; }

追下去是这么回事:视口单位按最大视口计算,浏览器工具栏收起时实际可视高度小于该值。

「移动端视口高度」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,改用动态视口单位;必要时用脚本写入真实高度;为旧浏览器保留回退写法。

验收就看一点,首屏在不同浏览器工具栏状态下都不被遮挡,滚动无跳变。

作者 9823189