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

768px响应式视图下body设置overflow:hidden不生效问题咨询

问题根本原因

  • 未对html根元素做高度和溢出限制,仅给body设置overflow: hidden时,部分浏览器会将body的溢出规则向上传播给视口,导致裁剪规则失效
  • 未给html、body设置height: 100%,绝对定位子元素的height: 100%没有正确的父级高度参照,实际渲染高度超出视口范围,出现纵向滚动条
  • body默认自带8px外边距,也会导致绝对定位元素的位置偏移,产生溢出

修复方案

首先在全局CSS中添加html、body的基础重置规则,再调整媒体查询内的溢出限制规则:

/* 全局基础重置,放在CSS最顶部 */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

.column {
  width: 30%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: lightyellow;
}

.outer {
  width: 70%;
  height: 100%;
  top: 0;
  right: 0;
  position: absolute;
}

.inner-1 {
  width: 100%;
  height: 50%;
  background-color: lightsalmon;
}

.inner-2 {
  width: 100%;
  height: 50%;
  background-color: lightblue;
}

@media screen and (max-width: 768px) {
  /* 同时给html、body设置溢出隐藏,避免规则传播失效 */
  html, body {
    overflow: hidden;
  }
  .column {
    width: 25%;
  }
  .outer {
    width: 75%;
    right: -100%;
  }
}

验证要点

修改后在768px视口下:

  • 横向不会出现滚动条,right: -100%的.outer元素会被裁剪在视口外
  • 纵向不会出现滚动条,两个绝对定位元素的高度和视口高度一致,无溢出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:57:00