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

容器滚动时子元素无法随滚动宽度拉伸的问题排查

问题描述

我有一个设置了overflow: auto的container容器div,当子元素包含长文本时会溢出容器并显示横向滚动条,这一表现符合预期。但存在的问题是,子元素无法随容器的滚动宽度拉伸,滚动容器时子元素会呈现截断状态。

原有代码

CSS

.flex-col {
  flex-direction: column;
}

.h-full {
  height: 100%;
}

.flex {
  display: flex;
}

.container {
  overflow: auto;
  resize: horizontal;
  min-width: 10rem;
  max-width: 25rem;
}

.item.selected {
  background-color: green;
  color: red;
}

.item {
  white-space: nowrap;
}

HTML

<div class="flex flex-col h-full">
  <div class="h-full container">
    <div class="flex p-2 items-center item selected">
      <div class="flex items-center">-</div>
      <div class="whitespace-nowrap">1Loooooooooooooong text that does not wrap.... aaaaaaaaaa sssssssss ddddddddd</div>
    </div>
    <div class="flex p-2 items-center item">
      <div class="flex items-center">-</div>
      <div class="whitespace-nowrap">2Loooooooooooooong text that does not wrap.... aaaaaaaaaa sssssssss ddddddddd</div>
    </div>
    <div class="flex p-2 items-center item">
      <div class="flex items-center">-</div>
      <div class="whitespace-nowrap">3Loooooooooooooong text that does not wrap.... aaaaaaaaaa sssssssss ddddddddd</div>
    </div>
  </div>
</div>

解决方案

问题根源在于.container是块级元素,其内部的.item默认只会继承容器的可视宽度,不会跟随滚动内容的总宽度。只需给.container添加flex列布局,让子元素自动拉伸至内容总宽度:

修改.container的CSS:

.container {
  overflow: auto;
  resize: horizontal;
  min-width: 10rem;
  max-width: 25rem;
  display: flex;
  flex-direction: column;
}

设置后,每个.item都会自适应容器的滚动宽度,滚动时背景色和元素整体不会再出现截断情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:35:17