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

学校项目中如何用CSS Grid实现类似flex-wrap的元素换行?

解决Grid布局下类似flex-wrap的自动换行问题

你当前的代码无法实现自动换行的核心问题是:.sfeer 采用Grid布局并设置了justify-content: center,导致内部的图片容器(.sfeer div)没有占据父容器的可用最大宽度,repeat(auto-fill, 250px) 无法根据视口宽度自动计算列数,自然无法触发换行。

修复方案

只需调整两处CSS即可实现需求:

  • 给.sfeer div 添加width: 100%,让它继承父容器的可用宽度,Grid就能根据视口尺寸自动调整列数,空间不足时自动换行。
  • 可选:给.sfeer 设置max-width,避免超大屏幕下列数过多影响观感。

修改后的完整代码

.sfeer {
  display: grid;
  justify-content: center;
  align-items: start; /* 替换center避免内容垂直居中导致布局偏移 */
  width: 100%;
  max-width: 1200px; /* 可选,限制最大宽度,优化大屏幕体验 */
  margin: 0 auto;
  padding-top: 5%;
}

.sfeer div {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* 用minmax让列宽更灵活,也可保留原repeat(auto-fill, 250px) */
    grid-gap: 1rem;
    margin-top: 1rem;
    width: 100%; /* 关键:让容器占满可用宽度 */
}
.sfeer img {
    display: block;
    width: 100%; /* 继承列宽,适配不同布局;若需固定250px可保留原设置 */
    height: 250px;
    object-fit: cover;
    box-shadow: 0px 0px 3em rgba(0, 0, 0, 0.3);
}
<article class="sfeer">
        <h2>Sfeer foto's</h2>
        <div>
          <img src="https://unsplash.it/640" alt="Foto 1: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 2: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 3: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 4: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 5: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 6: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 7: enkele chiroleden" />
          <img src="https://unsplash.it/640" alt="Foto 8: enkele chiroleden" class="last" />
        </div>
</article>

效果说明

修改后,当视口宽度不足以容纳所有250px列时,Grid会自动换行,实现和flex-wrap: wrap完全一致的效果,同时你可以继续在页面其他区域使用Flexbox布局,满足混合使用Grid和Flex的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:43:17