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

Bootstrap 4两列换行后如何设置高度适配内容(保留原有功能)

解决Bootstrap 4移动端堆叠列高度自适应+滚动问题

针对你遇到的问题,核心矛盾是桌面端需要列占满高度并支持滚动,移动端需要内容少时高度自适应、内容多时保持滚动,可以通过自定义CSS结合媒体查询解决,不用移除row的flex-grow-1:

步骤1:调整HTML结构

给滚动列添加自定义类(比如scroll-col),保留row的flex-grow-1(或Bootstrap自带的flex-fill类)以维持桌面端功能:

<div class="container h-100">
  <div class="row flex-fill">
    <div class="col-md-6 scroll-col overflow-auto">
      <!-- 左侧内容 -->
    </div>
    <div class="col-md-6 scroll-col overflow-auto">
      <!-- 右侧内容 -->
    </div>
  </div>
</div>

步骤2:添加自定义CSS

通过媒体查询区分桌面/移动端,控制列的flex属性和高度:

/* 桌面端:保持两列平分高度、内容滚动 */
@media (min-width: 768px) {
  .scroll-col {
    max-height: 100%;
    flex-grow: 1; /* 强制平分row高度 */
  }
}

/* 移动端:堆叠布局,高度自适应,内容过多时滚动 */
@media (max-width: 767.98px) {
  .scroll-col {
    flex-grow: 0 !important; /* 取消自动拉伸,高度由内容决定 */
    max-height: calc(100vh - 80px); /* 根据页面实际情况调整,比如减去头部/底部高度 */
    margin-bottom: 1rem; /* 可选:添加列间距 */
  }
}

原理说明

  • 桌面端通过flex-grow:1让两列平分row的高度,配合overflow-auto实现内容滚动。
  • 移动端取消flex-grow,列高度默认由内容撑开;设置max-height限制最大高度,内容超过时自动出现滚动条,同时保留了row的flex-grow-1以维持桌面端的布局功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:06:25