You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么安卓移动端隐藏地址栏时html { height:100% } 样式不生效?

问题原因解释

这个现象是安卓端Chromium内核浏览器(Chrome、Opera等)的动态视口设计与百分比高度计算规则共同导致的,具体逻辑如下:

  • 初始状态下,你为<html>根元素设置了内联样式height:2000px,远大于移动端默认视口高度,页面可滚动。安卓Chromium内核浏览器滚动时会自动隐藏顶部地址栏,地址栏原本占用的高度会释放给页面,此时页面实际可见区域的高度会比地址栏显示时高大约56px(不同设备地址栏高度略有差异)。
  • 当你滚动到地址栏完全隐藏后点击按钮,JS代码将<html>的内联高度置为null,此时<html>会应用样式表中定义的height: 100%规则。这里的100%高度的计算基准是地址栏未隐藏时的初始视口高度,而非当前地址栏隐藏后的实际可见视口高度:这是Chromium移动端的特殊设计,目的是避免地址栏显隐过程中页面百分比元素反复跳动,所以默认会把百分比高度的视口基准锁定为地址栏显示时的高度。
  • 你的<body>设置了height:100%,高度继承自<html>,所以此时<body>的总高度等于地址栏未隐藏时的视口高度,比当前实际可见区域高度少了一个地址栏的高度,多出的底部区域就会露出<html>的橙色背景,出现绿色填充不全的现象。

如果要修复这个问题,可以把样式表中html的height:100%替换为height:100dvh,dvh是动态视口高度单位,会自动适配地址栏隐藏后的实际可见高度。


内容的提问来源于stack exchange,提问作者wezten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:36:02