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

iOS/Android端元素宽度超屏时body高度异常,如何维持100%原高度?

问题原因

移动端浏览器存在自动适配超宽内容的逻辑:当页面内出现大于当前视口宽度的元素时,浏览器会默认缩放整个页面来容纳全部内容,这会导致实际渲染的视口高度随缩放比例变化。仅给html、body设置max-height: 100%无法生效,因为百分比高度的父元素基准值已经被撑开。

解决方案

直接修改html、body的样式,用视口单位固定高度,同时限制溢出规则即可:

  • 用vw/vh单位直接绑定视口的宽高,避免父元素基准值变化的影响
  • 明确设置overflow-x控制横向内容的展示逻辑,overflow-y禁止纵向内容撑高容器

修改后的完整代码如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0">
<style>
    * {
        box-sizing: border-box;
        padding: 0;
        margin: 0;
    }
    body, html {
        /* 用视口单位固定宽高,不受内容尺寸影响 */
        width: 100vw;
        height: 100vh;
        max-height: 100vh;
        /* 保留横向滚动能力,不需要滚动就改为hidden */
        overflow-x: auto;
        /* 禁止纵向溢出,避免高度被撑开,需要纵向滚动可改为auto */
        overflow-y: hidden;
    }
    #el {
        width:2100px;
        color:red;
        border:2px solid red;
    }
</style>
</head>

<body>
<div id="el">aaaa</div>
<script>
    document.getElementById('el').innerHTML = window.innerWidth + '<br>' + window.innerHeight
</script>
</body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:45:03