

新闻资讯
技术学院用 CSS Grid 实现图片画廊最省事,只需容器设 display: grid 和 grid-template-columns: repeat(auto-fill, minmax(250px, 1fr))),配 object-fit: cover 统一图片尺寸,原生 实现点击放大,响应式优先真机测试再调 minmax 下限。
display: grid 最省事初学者常从 float 或 inline-block 入手,结果卡在间隙、换行、宽高不一致上。直接用 grid 能绕过 80% 布局坑,兼容性也够——现代浏览器(Chrome 57+、Firefox 52+、Safari 10.1+)都支持,连 Edge 16 也没问题。
关键不是“学会 grid”,而是抓住两个必需声明:
display: grid 必须加在容器上(比如 .gallery)grid-template-columns 决定每行几列,别写死像素,用 repeat(auto-fill, minmax(250px, 1fr))) 让它自适应.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)));
gap: 12px;
}
object-fit: cover 强制统一用户上传的图宽高比千奇百怪,width: 100% + height: 200px 会拉伸变形;只设 width: 100% 又导致高度不齐。真正该做的是让图片“居中裁剪”:
加 width: 100% 和 height: 200px(或用 aspect-ratio: 4/3)object-fit: cover,否则默认是 fill(拉伸)object-position: center,确保裁剪时居中取图.gallery img {
width: 100%;
height: 200px;
object-fit: cover;
object-position: center;
}
比 JS 插件更轻量很多教程一上来就教用 Lightbox 类库,但纯 CSS + 原生 HTML 就能搞定基础弹窗,不用加载 JS、不操心事件绑定。
标签包住大图,配合 showModal() 方法触发(一行 JS 就够)src 赋给弹窗里的 ,再调用 showModal()
实现关闭,旧版 Safari 需降级为 display: none/block
新手常一上来就写 @media (max-width: 768px) 和 @media (max-width: 480px),结果发现手机上看还是挤。真实优先级是:
minmax(250px, 1fr) 的下限太高,改成 minmax(180px,
1fr)
grid 自己会按容器宽度重排,除非你刻意限制最大列数max-width 做断点,改用 min-width 更符合渐进增强逻辑复杂点往往不在代码多寡,而在是否真去手机上点开看了三张不同比例的图——有两张黑边、一张被裁掉半张脸,那 object-position 就得调,而不是换框架。