使用CSS Flexbox制作图片墙需设置父容器display: flex和flex-wrap: wrap,通过gap或margin控制间距。1. 父容器启用换行并推荐使用gap统一间距;2. 子项设置flex: 0 0 calc(33.333% - 20px)实现三列布局,配合margin和box-sizing避免宽度溢出;3. 结合媒体查询调整不同屏幕下的flex比例,实现响应式;4. 现代布局建议用gap替代margin,简化样式处理。
使用CSS Flexbox制作图片墙,关键在于利用 flex-wrap 实现换行排列,并通过 margin 控制图片之间的间距。这种方式灵活、响应式强,适配不同屏幕尺寸。
代码示例:
.image-wall {
display: flex;
flex-wrap: wrap; /* 允许子元素换行 */
gap: 10px; /* 推荐:使用gap统一控制间距(现代浏览器) */
padding: 10px;
}
注意:虽然可用 margin 控制间距,但使用 gap 更简洁,避免首尾元素边距溢出问题。示例:
.image-item {
flex: 0 0 calc(33.333% - 20px); /* 每行最多3张图,减去左右margin */
margin: 10px; /* 上下左右各10px间距 */
box-sizing: border-box;
}
img {
width: 100%;
height: auto;
display: block;
}
@media (max-width: 768px) {
.image-item {
flex: 0 0 calc(50% - 20px); /* 平板:每行2张 */
}
}
@media (max-width: 480px) {
.image-item {
flex: 0 0 calc(100% - 20px); / 手机:每行1张 /
}
}
.image-wall {
display: flex;
flex-wrap: wrap;
gap: 15px; /* 行与列的间距均为15px */
padding: 10px;
}
.image-item {
flex: 0 0 33.333%; / 不需减去间距,由gap自动处理 /
height: 100px;
}
基本上就这些。用 flex-wrap 配合 margin 或 gap,就能做出整齐美观、自适应的图片墙。不复杂但容易忽略细节。