用 grid 布局作品集最省力,关键在 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr))、gap: clamp(0.75rem, 2.5vw, 1.25rem),图片需 lazy 加载、HTTPS 外链加 referrerpolicy 和 alt,核心是响应式细节把控。
直接用 display: grid 搭作品集页面最省力,比 Flexbox 更适合卡片类布局,也比 float 或 table 安全得多——前提是别乱设 grid-template-columns: repeat(3, 1fr),否则小屏上文字挤成一团、图片被拉变形,是新手踩得最多的一坑。
关键不是列数,而是单卡最小宽度和弹性逻辑。固定写 repeat(3, 1fr) 就等于告诉浏览器“不管屏幕多窄,都硬塞三列”,结果移动端卡片宽度跌破 280px,img 和标题文字全乱套。
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)):自动适配列数,每列至少 300px,超出部分均分auto-fit 而非 auto-fill,避免空列占位px 或 % 写死列宽,fr 单位才能响应剩余空间grid-auto-rows: minmax(200px, auto) 防止错行gap 写死会破坏跨设备一致性:手机上 1rem ≈ 16px,间隙显得过大;4K 屏上又太小,卡片像粘在一起。用 clamp() 是目前最稳妥的解法。
gap: clamp(0.75rem, 2.5vw, 1.25rem)
margin 模拟 gap,会导致最后一行卡片右/下留白不对齐作品集里图多,不懒加载首屏就卡;但直接写 src 外链图,既慢又可能被防盗链拦截或 404。本地化不是必须,但得有 fallback。
立即学习“前端免费学习笔记(深入)”;
loading="lazy" 属性,现代浏览器原生支持,无需 JShttps://example.com/img.jpg),避免相对路径 404alt 属性描述画面内容,不只是“作品1”,搜索引擎和读屏器都靠它./assets/projects/xxx.jpg,避免 CDN 故障导致整页空白referrerpolicy="no-referrer",防 Referer 泄露来源页真正难的不是写出网格,而是让每张图在不同设备上都保持可读性——字体大小、行高、图片裁剪比例、hover 动效触发阈值,这些细节叠加起来,才是作品集是否“专业”的分水岭。