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

CSS Grid动态行数布局下菜单重叠所有行第一列的实现问题

动态行数CSS Grid实现菜单与多section重叠布局解决方案

问题场景

设置了一个两列的CSS Grid布局,要求每个section元素占满整行(跨两列),且section数量动态变化,布局行数随之调整。目标是让菜单DIV占据每一行的第一列,与section元素形成重叠效果。原本尝试让每个section从第一列到最后一列、菜单占据第一列并延伸至最后一行,但实际运行未达预期;手动设置精确grid-area坐标虽有效,但行数动态无法适配。

原始代码

HTML

<div class="scrollSections__grid">     
  <div class="scrollSections__section"></div>
  <div class="scrollSections__section"></div>
  <div class="scrollSections__section"></div>
  <div class="scrollSections__section"></div>
  <div class="scrollSections__section"></div>
  <div class="scrollSections__section"></div>
  ... (n个section元素)

  <div class="scrollSections__menu"> </div>
</div>

原始CSS

.scrollSections__grid {
  display: grid;
  grid-template-columns: 1fr 3fr;
}

.scrollSections__section {
  min-height: 100svh;
  border: 2px solid blue;
  grid-row: 1 / -1;
  padding: 50px;
  background: red;
}

.scrollSections__menu {
  border: 2px solid red;
  grid-area: 1 / 1 / -1 / 2;
  padding: 30px;
}

问题原因

原始代码中所有section都设置了grid-row: 1 / -1,导致所有section强制挤在同一行,Grid无法自动生成新行,自然无法实现多行section搭配菜单覆盖第一列的效果。

解决方案

核心思路是让每个section自动占据单独一行并跨两列,菜单固定在第一列并覆盖所有行高度,同时支持动态行数适配:

修改后的CSS

.scrollSections__grid {
  display: grid;
  grid-template-columns: 1fr 3fr;
}

.scrollSections__section {
  min-height: 100svh;
  border: 2px solid blue;
  grid-column: 1 / -1; /* 让section跨两列,自动占据单独一行 */
  padding: 50px;
  background: red;
}

.scrollSections__menu {
  border: 2px solid red;
  grid-column: 1; /* 固定在第一列 */
  grid-row: 1 / -1; /* 覆盖Grid所有行 */
  padding: 30px;
  z-index: 1; /* 确保菜单显示在section上方,按需调整 */
  /* 可选:滚动时菜单固定在视口 */
  position: sticky;
  top: 0;
  height: 100svh;
}

效果说明

  1. 每个section通过grid-column: 1 / -1跨两列,Grid会根据section数量自动生成对应行数,完美适配动态数量需求。
  2. 菜单通过grid-column: 1和grid-row: 1 / -1固定在第一列并覆盖所有行,实现与所有section第一列的重叠效果。
  3. 可选添加position: sticky和height: 100svh,让菜单在页面滚动时始终固定在视口第一列,提升交互体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:15:02