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

如何实现父div横向滚动、子div纵向滚动的前端布局效果

实现方案

现有代码存在两个核心问题导致滚动效果不符合预期:

  1. 子元素.one设置了width: 100%,宽度被限制为父容器的300px,无法跟随内部内容撑开,因此无法触发父容器的横向滚动
  2. 子元素.one设置了height: 300px,高度超出父容器的200px,而父容器设置了overflow-y: hidden,导致子元素的纵向滚动条被裁剪无法正常显示

修复后的完整代码

CSS代码

.container {
  width: 300px;
  height: 200px;
  border: 2px solid;
  display: flex;
  overflow-x: scroll;
  overflow-y: hidden;
  flex-direction: row;
}
.one {
  /* 宽度跟随内部内容自动撑开,触发父容器横向滚动 */
  width: fit-content;
  /* 高度和父容器保持一致,避免纵向滚动条被裁剪 */
  height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
  position: relative;
  border: 2px red solid;
}
.text {
  width: 400px;
}

若需要兼容低版本浏览器,可将.one的width: fit-content替换为min-width: 400px,和内部.text的宽度保持一致即可。

HTML代码

<div class="container">
  <div class="one">
    <div class="text">
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
      此处为示例文本。此处为示例文本。此处为示例文本。此处为示例文本。
    </div>
  </div>
</div>

最终效果

  • 父容器横向可滚动,完整展示400px宽度的文本内容
  • 子元素纵向可滚动,完整展示超出200px高度的文本内容
  • 两个方向滚动互不干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:57:01