学习笔记:用 CSS Grid 做响应式卡片布局

举报
yd_298459565 发表于 2026/10/26 14:25:05 2026/10/26
【摘要】 学习笔记:用 CSS Grid 做响应式卡片布局原创学习笔记,整理用 CSS Grid 做卡片列表时常用的布局写法与取舍。做产品列表、文章卡片这类“多卡片平铺”页面时,Flexbox 需要手动算宽度和换行,Grid 一行声明就能解决大部分问题。 1. 自动填充列数.grid { display: grid; grid-template-columns: repeat(auto-fill...

学习笔记:用 CSS Grid 做响应式卡片布局

原创学习笔记,整理用 CSS Grid 做卡片列表时常用的布局写法与取舍。

做产品列表、文章卡片这类“多卡片平铺”页面时,Flexbox 需要手动算宽度和换行,Grid 一行声明就能解决大部分问题。

1. 自动填充列数

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
  • 原理:auto-fill 按容器宽度自动算出能放几列,minmax(240px, 1fr) 保证每列不小于 240px、有剩余空间时均分。
  • 体会:不用写媒体查询就能在手机、平板、桌面上各自排布合理的列数;卡片数量不整除时最后一行不会被拉伸变形。

2. 卡片内部用子网格对齐

卡片里标题、摘要、底部操作栏高度不一时,整行卡片底部会对不齐:

.card {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

中间摘要区占 1fr,底部按钮自然沉底,同一行卡片视觉上整齐很多。

3. 跨列的特色卡

第一张卡想做大图推荐位时,不用单独写一套布局:

.card.featured {
  grid-column: span 2;
}

窄屏下 span 2 可能超宽,可在小屏媒体查询里改回 span 1,只保留一处例外规则。

小结

个人小项目的推荐组合:外层 auto-fill + minmax 自动分列,卡片内 auto 1fr auto 三行对齐,特色卡用 span 2 点缀。布局代码不到 20 行,改列宽、改间距都只动一处。下次打算实测一下 subgrid 在嵌套卡片里的对齐效果。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。