Tailwind CSS如何调整flex布局图片大小与位置实现错落图片画廊
Tailwind CSS 实现flex布局错落式图片画廊
实现逻辑
- 错落效果无需额外JS,依靠Tailwind的外边距偏移+固定宽高比即可实现,完全兼容现有flex布局的基础结构
- 对需要下移的列/图片块添加正向顶部外边距,需要上移的块添加负向顶部外边距,就能形成高低错落的视觉效果
- 统一给图片设置固定宽高比,避免图片加载后高度不一致打乱排版
- 原有代码的响应式内边距、圆角、
object-cover配置全部保留,不需要重构现有结构
具体修改点
- 最外层flex容器添加
items-start,取消flex项默认的拉伸对齐,否则偏移效果不生效 - 右侧1/3宽度的列整体添加
mt-12 md:mt-16,实现整列下移的错落效果 - 下方2/3宽度的图片组添加
-mt-8 md:-mt-12,和上方右侧下移的列形成视觉衔接 - 给所有图片容器添加固定宽高比:小方图用
aspect-square,横向长图用aspect-[21/9],统一图片尺寸 - 补全外层容器的居中、内边距配置,避免图片贴边
完整代码
<section class="overflow-hidden text-gray-700 px-2 py-4"> <div class="container mx-auto"> <div class="flex flex-wrap items-start"> <!-- 左上2/3宽度图片组 --> <div class="flex flex-wrap w-2/3"> <div class="w-1/2 p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(70).webp"> </div> <div class="w-1/2 p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(72).webp"> </div> <div class="w-full p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-[21/9] rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(73).webp"> </div> </div> <!-- 右侧1/3宽度列 整体下移 --> <div class="flex flex-wrap w-1/3 mt-12 md:mt-16"> <div class="w-full p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(74).webp"> </div> <div class="w-full p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(75).webp"> </div> </div> <!-- 左下2/3宽度图片组 负边距上移衔接 --> <div class="flex flex-wrap w-2/3 -mt-8 md:-mt-12"> <div class="w-1/2 p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(70).webp"> </div> <div class="w-1/2 p-1 md:p-2"> <img alt="gallery" class="block object-cover object-center w-full aspect-square rounded-lg" src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(72).webp"> </div> </div> </div> </div> </section>
调整参数说明
- 错落高度差直接修改
mt-*/-mt-*的数值即可,数值越大错位效果越强 - 图片比例通过修改
aspect-*类调整,竖长图可以用aspect-[3/4],超宽图可以用aspect-[2/1] - 如果移动端不需要错落效果,给偏移类加
md:前缀即可,例md:mt-16代表仅屏幕宽度≥768px时生效下移
注意:不要给图片设置
h-full,否则宽高比规则会失效,图片会被拉伸变形。
内容的提问来源于stack exchange,提问作者like who
相关产品推荐
相关产品推荐

