列表布局图片画廊是语义清晰的入门方案,但需重置默认样式、用flex/grid控制排列,并推荐升级为增强可访问性,同时补充懒加载、响应式图片等性能优化。

用列表标签(<ul></ul> 和 <li>)配合 <img> 布局图片画廊,是一种语义清晰、结构简洁的入门方案,适合轻量级展示。但它不是“最优解”,而是“可用解”——关键在于补足语义缺失和响应式短板。
为什么可以用列表,但不推荐直接套用
列表天然表达“一组并列项”,符合画廊中多张图片的逻辑关系。但 <ul></ul> 本身不带视觉样式,需 CSS 全面接管布局;且原生列表项含默认缩进、项目符号和垂直间距,不清理会干扰画廊整齐度。
- 必须重置
list-style: none和margin/padding,否则每张图前有圆点、上下留白异常 -
<li>是流式容器,不能直接约束图片宽高比,容易因图片尺寸不一导致网格错位 - 缺少对图片说明文字的语义绑定(
<figcaption></figcaption>只能属于<figure></figure>),纯列表+<p></p>标题无法被屏幕阅读器识别为图注
基础写法:列表骨架 + 图片内联
结构上,每个 <li> 包一张 <img>,可加 <span></span> 或 <p></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4156" title="Pptx To Html"><img
src="https://img.php.cn/upload/skill/000/000/081/178995432594388.jpg" alt="Pptx To Html" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill4156" title="Pptx To Html" class="overflowclass">Pptx To Html</a>
<p class="overflowclass">使用 MinerU 将 PowerPoint (.pptx) 演示文稿转换为 HTML,保留幻灯片内容与结构,生成可直接在网页使用的 HTML格式。</p>
</div>
<a rel="nofollow" href="/xiazai/skill4156" title="Pptx To Html" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 作标题。HTML 简洁,但依赖 CSS 补全功能:
- @@##@@晨光山径
- @@##@@落日海湾
- @@##@@夜幕街角
CSS 需强制清除默认样式,并启用 flex 或 grid 控制排列:
- 设
.gallery { display: flex; flex-wrap: wrap; gap: 1rem; padding: 0; list-style: none; } - 设
.gallery li { flex: 1 1 280px; }实现弹性列宽(小屏单列,大屏多列) - 设
.gallery img { width: 100%; height: auto; display: block; }防拉伸和基线间隙
更稳妥的做法:列表语义升级为 figure
若想兼顾可访问性与响应式能力,建议把每个 <li> 替换为 <figure></figure>,这是 W3C 推荐的语义化路径:
@@##@@ 晨光山径 @@##@@ 落日海湾
此时 <figure></figure> 成为真正的内容单元,<figcaption></figcaption> 能被辅助技术正确关联图片。CSS 仍可沿用 flex 或改用 grid:
- 保持
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; } - 为
<figure></figure>设margin: 0;,避免嵌套外边距干扰 - 为
<img src="1.jpg" alt="山景">设width: 100%; height: auto;,并为<figure></figure>添加aspect-ratio: 4/3;(现代浏览器)防高度跳动
别忽略的细节:性能与体验补丁
仅靠列表+图片标签无法自动优化加载或交互。需手动增强:
- 给每张
<img src="2.jpg" alt="海景">加loading="lazy",滚动到视口再加载 - 用
srcset和sizes提供多分辨率资源,例如:<img src="3.jpg" alt="城市"> - 标题文字过长时,加
overflow-wrap: break-word;防撑破容器 - 悬停放大效果用
transform: scale(1.05);而非改 width/height,避免重排卡顿



前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










