图片画廊是网页中常见的展示模块,合理的布局能让多张图片有序排列,同时适配不同设备的屏幕尺寸。实现这类布局不需要复杂的框架,仅用HTML和原生CSS就能完成。

基础HTML结构搭建
首先需要使用语义化的HTML标签搭建画廊的基础结构,通常用<div>作为容器,内部用<figure>或<div>包裹每张图片和对应的描述信息,这样结构清晰也便于后续样式控制。
<div class="gallery">
<div class="gallery-item">
<img src="https://picsum.photos/300/200?random=2" alt="示例图片1">
<p class="img-desc">风景示例图</p>
</div>
<div class="gallery-item">
<img src="https://picsum.photos/300/200?random=3" alt="示例图片2">
<p class="img-desc">建筑示例图</p>
</div>
<div class="gallery-item">
<img src="https://picsum.photos/300/200?random=4" alt="示例图片3">
<p class="img-desc">人物示例图</p>
</div>
</div>常用布局方案选择
1. Flexbox布局
Flexbox是现代布局的首选方案,能轻松实现图片的横向排列和换行,还能控制对齐方式和间距,适配性很强。
.gallery {
display: flex;
flex-wrap: wrap; /* 允许换行 */
gap: 16px; /* 图片之间的间距 */
padding: 20px;
justify-content: center; /* 居中对齐 */
}
.gallery-item {
flex: 0 0 calc(33.333% - 16px); /* 一行显示3张,减去间距 */
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.gallery-item img {
width: 100%;
height: 200px;
object-fit: cover; /* 图片铺满容器,保持比例 */
}
.img-desc {
padding: 10px;
text-align: center;
margin: 0;
}2. Grid布局
Grid布局更适合需要精确控制行列的场景,能快速定义每行的图片数量,代码更简洁,适合固定列数的画廊需求。
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 3列等宽 */
gap: 16px;
padding: 20px;
}
.gallery-item {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.gallery-item img {
width: 100%;
height: 200px;
object-fit: cover;
}响应式适配技巧
为了让画廊在不同屏幕尺寸下都有好的展示效果,需要添加媒体查询调整不同宽度下的布局规则。
/* 平板设备,一行显示2张 */
@media (max-width: 768px) {
.gallery {
grid-template-columns: repeat(2, 1fr);
}
.gallery-item {
flex: 0 0 calc(50% - 16px);
}
}
/* 手机设备,一行显示1张 */
@media (max-width: 480px) {
.gallery {
grid-template-columns: 1fr;
}
.gallery-item {
flex: 0 0 100%;
}
}注意事项
- 图片建议统一设置
object-fit: cover,避免出现拉伸变形的情况 - 如果用Flexbox布局,注意计算好每行的图片宽度和间距的关系,避免换行异常
- 可以给画廊容器设置最大宽度,避免在大屏幕上图片过度拉伸影响观感
- 如果需要添加点击放大等交互,可以在基础结构上扩展JavaScript逻辑,不影响原有布局
HTML图片画廊响应式布局CSS_flexbox修改时间:2026-06-06 18:04:32