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

如何实现pre标签内容超出wrapper容器时可滚动查看?

实现pre内容超出容器时的滚动效果

你当前代码无法触发滚动的核心原因是pre标签被设置了绝对定位,这会让它脱离正常文档流,导致wrapper容器无法感知到pre的实际高度,自然不会触发滚动行为。下面给出两种可行的解决方案:

方案一:让pre回到文档流,容器整体滚动

这种方案让pre保持在正常文档流中,当内容超出wrapper高度时,容器自动显示滚动条。修改后的CSS如下:

.wrapper {
  width: 50vw;
  height: 90vh;
  overflow-y: auto; /* 内容超出时显示垂直滚动条 */
  background-color: salmon;
  padding: 10px; /* 可选,避免内容贴容器边缘 */
}

.wrapper pre {
  margin: 0 0 10px 0;
  padding: 10px;
  color: #ffffff;
  background-color: sandybrown;
  white-space: pre-wrap; /* 可选,让长文本自动换行,避免横向滚动 */
}

修改说明:

  • 移除wrapper的position: relative和pre的position: absolute、bottom: 0%、display: flex,让pre回到正常文档流,确保wrapper能正确计算内容高度。
  • 保留overflow-y: auto,当pre内容高度超过wrapper设定高度时,自动触发垂直滚动。
  • white-space: pre-wrap为可选属性,默认pre会保留原始换行但不自动折行长文本,添加后可避免出现横向滚动条。

方案二:pre贴容器底部,内容超出时自身滚动

如果需要pre始终固定在wrapper底部,同时内容过多时仅pre区域滚动,可通过flex布局实现:

.wrapper {
  width: 50vw;
  height: 90vh;
  background-color: salmon;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; /* 让pre靠底部对齐 */
  padding: 10px;
}

.wrapper pre {
  margin: 0 0 10px 0;
  padding: 10px;
  color: #ffffff;
  background-color: sandybrown;
  max-height: 100%; /* 限制pre高度不超过容器 */
  overflow-y: auto; /* pre内容超出时自身滚动 */
  white-space: pre-wrap;
}

修改说明:

  • 用flex布局让pre固定在容器底部,通过max-height:100%限制pre的最大高度不超过wrapper。
  • 给pre添加overflow-y: auto,当内容超出pre的最大高度时,pre自身显示滚动条。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:50:25