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

CSS Grid实现:让B列高度限制为A列高度,超长时滚动

实现方案:CSS Grid 让B列高度匹配A列并支持滚动

这个效果完全可以实现,核心思路是让B列的网格项高度继承由A列内容决定的网格轨道高度,再给B列的内容容器添加滚动属性。

具体实现步骤:

  • 给网格容器设置display: grid,定义两列布局(比如grid-template-columns: 1fr 1fr),无需额外设置行高,网格行高度会自动由A列的内容高度决定。
  • 给B列的网格项设置height: 100%,确保它填满网格行的高度。
  • 给B列的内容容器设置height: 100%和overflow-y: auto,当内容超出网格行高度时自动出现垂直滚动条。

示例代码:

<div class="grid-container">
  <div class="column-a">
    <!-- A列内容,高度由自身内容决定 -->
    <p>A列内容示例</p>
    <p>更多内容...</p>
    <p>继续添加内容撑高A列</p>
  </div>
  <div class="column-b">
    <div class="b-content">
      <!-- B列长内容 -->
      <p>B列长内容1</p>
      <p>B列长内容2</p>
      <p>B列长内容3</p>
      <p>B列长内容4</p>
      <p>B列长内容5</p>
      <p>B列长内容6</p>
      <p>B列长内容7</p>
      <p>B列长内容8</p>
      <p>B列长内容9</p>
      <p>B列长内容10</p>
    </div>
  </div>
</div>
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; /* 可选列间距 */
}

.column-b {
  height: 100%;
}

.b-content {
  height: 100%;
  overflow-y: auto;
  padding: 1rem;
  border: 1px solid #eee; /* 可选边框美化 */
}

你之前用min-content没效果的原因是:min-content会让轨道高度适配内容的最小需求,而我们需要的是轨道高度由A列的实际内容高度决定,再让B列容器填满这个高度并处理溢出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:05:34