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

CSS Grid布局咨询:大屏3/2项循环,小屏2/1项循环

实现循环式响应式CSS Grid布局

核心思路

利用CSS Grid的列跨度(grid-column)结合:nth-child()选择器,针对不同屏幕尺寸定义循环周期的项目布局:

  • 大屏(如≥768px):每5个项目为一个周期(3个一行 + 2个一行)
  • 小屏(如<768px):每3个项目为一个周期(2个一行 + 1个一行)

代码实现

HTML结构

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>
  <div class="grid-item">10</div>
  <!-- 可继续添加更多项目 -->
</div>

CSS样式

/* 基础Grid容器样式 */
.grid-container {
  display: grid;
  gap: 1rem;
  padding: 1rem;
}

/* 小屏布局:2:1循环(每3个项目为周期) */
@media (max-width: 767px) {
  .grid-container {
    grid-template-columns: repeat(2, 1fr);
  }
  /* 每个周期的第3个项目占满整行 */
  .grid-item:nth-child(3n + 3) {
    grid-column: 1 / -1;
  }
}

/* 大屏布局:3:2循环(每5个项目为周期) */
@media (min-width: 768px) {
  .grid-container {
    grid-template-columns: repeat(3, 1fr);
  }
  /* 每个周期的第4、5个项目各占1.5列(填满3列宽度) */
  .grid-item:nth-child(5n + 4),
  .grid-item:nth-child(5n + 5) {
    grid-column: span 1.5;
  }
}

关键细节说明

  • 大屏下,repeat(3, 1fr)定义3列网格,第4、5个项目用span 1.5跨1.5列,刚好两个项目填满一行(1.5+1.5=3)
  • 小屏下,repeat(2, 1fr)定义2列网格,第3个项目用grid-column: 1 / -1跨满整行,实现单行1个项目的效果
  • gap控制项目间距,可根据需求调整
  • 周期数可通过nth-child()的公式灵活修改,确保布局循环生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:35:16