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

当div子元素总宽度超出父容器宽度时如何开启水平滚动?

解决方案

给.container添加white-space: nowrap属性即可实现需求,这个属性会强制容器内的行内/行内块元素不换行,保持在同一行排列。

修复后的完整代码如下:

.container {
  position: relative; 
  margin: 0 auto;
  width: 300px;
  height: 80px;
  overflow-x: scroll;
  border: 1px solid black;
  /* 新增属性,强制内容不换行 */
  white-space: nowrap;
}

.item {  
  display: inline-block;
  height: 50px;
  width: 100px;
  border:1px solid red;
  background-color: lightblue;
}
<div class="container">
  <span class="item">hi</span>
  <span class="item">hi</span>
  <span class="item">hi</span>
  <span class="item">hi</span>
  <span class="item">hi</span>
</div>

补充说明:

  • white-space: nowrap作用于块级元素时,会让其内部所有行内级内容(包括inline-block元素)不会自动换行,直到遇到<br>标签为止。
  • 此时子元素总宽度超过父容器的300px宽度时,你之前设置的overflow-x: scroll会自动生效,出现横向滚动条,父容器宽度不会被撑开。

可选方案:使用Flex布局实现

如果不想用white-space属性,也可以给.container设置Flex布局,代码修改如下:

.container {
  position: relative; 
  margin: 0 auto;
  width: 300px;
  height: 80px;
  overflow-x: scroll;
  border: 1px solid black;
  /* 新增Flex相关属性 */
  display: flex;
  flex-wrap: nowrap;
}

这种方案也能达到同样的效果,flex-wrap: nowrap会强制所有Flex子项不换行排列,超出时触发横向滚动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:03