用纯html可搭建无需js、框架的相册页:以包裹与实现语义化布局,必含alt属性,配合css flex实现自动换行与响应式尺寸,图片路径用相对路径,点击通过跳转原图确保可访问性与兼容性。

怎么用纯 HTML 搭出能看图的相册页
不需要框架、不依赖 JS,用原生 <img> 和语义化标签就能做出可访问、可缩放、结构清晰的相册页。关键不是“炫效果”,而是让每张图有描述、有顺序、能被屏幕阅读器识别,且在手机上不横向滚动。
- 用
<figure></figure>包裹每张图 +<figcaption></figcaption>,比单纯<div><img></div>更利于 SEO 和无障碍访问 - 所有
<img>必须带alt属性,哪怕只是空字符串alt=""(表示装饰图),否则会触发 WCAG 警告 - 图片路径建议用相对路径,比如
photos/vacation-01.jpg,避免硬编码绝对 URL,方便本地预览和迁移 - 别写死宽高,用 CSS 控制尺寸;
<img style="max-width:90%" style="max-width:90%">会导致移动端拉伸变形
怎么让多张图自动换行又不挤成一团
纯 HTML 不处理布局,必须靠 CSS。最简方案是用 display: flex + flex-wrap: wrap,比浮动或 inline-block 更可控。
<style>
.gallery {
display: flex;
flex-wrap: wrap;
gap: 1rem; /* 图片间距,比 margin 更干净 */
padding: 1rem;
}
.gallery figure {
flex: 1 1 calc(33.333% - 1rem); /* 一行最多3张,留出 gap 空间 */
max-width: 300px; /* 防止超大图撑破容器 */
margin: 0;
}
.gallery img {
width: 100%;
height: auto; /* 保持原始宽高比 */
display: block;
}
</style>
-
flex: 1 1 calc(33.333% - 1rem)是核心:允许收缩、允许放大、基础宽度≈1/3屏宽减去间隙 -
max-width: 300px比设死width: 33%更安全——小屏下图片不会过小,大屏下也不会无限拉宽 - 去掉
<figure></figure>默认的上下边距(margin: 0),否则gap会叠加出意外空白
点击图片放大?不用 JS 怎么办
纯 HTML 做不了模态框,但可以用 <a></a> 标签跳转到大图页面,这是最轻量、最可靠的做法。别强行用 target="_blank",优先考虑用户返回体验。
- 把
<img>套进<a href="photos/vacation-01-large.jpg"></a>,链接地址指向高清原图 - 加
rel="noopener"(即使同域也建议加上),避免安全风险 - 如果想让用户知道这是“可查看大图”,在
<figcaption></figcaption>末尾加个小标注,比如<figcaption>京都清水寺 <small>(点击查看原图)</small></figcaption> - 不要用
onclick="window.open(...)"—— 无 JS 时失效,且破坏右键保存、中键新标签等原生行为
为什么本地双击打开 HTML 文件时图片不显示
常见错误:路径写成 file:///C:/users/xxx/photos/1.jpg 或漏掉 photos/ 目录层级。浏览器对本地 file:// 协议的路径解析极严格。
- 确保 HTML 文件和图片在同一级目录,或按实际子目录写相对路径,例如:
<img src="photos/2023-01.jpg"> - Windows 下路径分隔符用
/,不是\——src="photos\2023-01.jpg"在 Chrome/Firefox 中会失败 - 文件名含中文或空格?改用英文+短横线,比如
kyoto-temple.jpg;否则某些系统会编码异常 - 检查浏览器控制台报的
404 (Not Found)错误,它直接告诉你哪个路径错了
真正麻烦的不是写几行 HTML,而是路径写错后反复刷新却看不到图——花三分钟核对文件树结构,比调样式快得多。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











