静态博客特别适合用,因为其纯静态特性无法服务端生成适配图,而依靠浏览器原生多源决策,无需js、零运行时开销,且github pages等平台100%支持;它能精准按dpr、视口和格式提供最优图片,提升lcp、避免cls,并保障可访问性。

静态博客用 <picture></picture> 能显著减少图片体积、避免加载错尺寸,但必须按条件顺序写、<img> 不可省略,否则小屏用户可能看到大图或空白。
为什么静态博客特别适合用 <picture></picture>?
纯 HTML+CSS 博客没有服务端逻辑,无法动态生成缩略图或根据 UA 选格式;<picture></picture> 是唯一能靠浏览器原生能力完成“多源决策”的方案。它不依赖 JS,不增加运行时开销,且所有现代博客托管平台(GitHub Pages、Vercel)都 100% 支持。
- 首屏图片只加载适配当前 DPR 和视口宽度的版本,LCP 指标更优
- 同一张封面图可同时提供
webp(Chrome/Firefox)和jpeg(Safari 旧版)两个<source></source>,无需 polyfill - 对摄影类博客尤其关键:主图可按
media="(min-width: 768px)"加载横版宽图,小屏则切为竖构图的portrait.jpg
<source></source> 的 media 和 type 到底怎么配?
顺序决定优先级,浏览器从上到下匹配第一个满足条件的 <source></source> —— 这点极易被忽略,导致高 DPR 设备加载了低分辨率图。
- 先写窄屏条件:
<source media="(max-width: 767px)" srcset="post-400w.webp"></source> - 再写中屏:
<source media="(min-width: 768px) and (max-width: 1199px)" srcset="post-800w.webp"></source> - 最后写宽屏+高 DPR:
<source media="(min-width: 1200px)" srcset="post-1200w.webp, post-1200w@2x.webp 2x"></source> - 格式回退放最前或最后都行,但推荐放最前:
<source type="image/webp" srcset="post-800w.webp"></source>,因为type匹配失败会跳过该<source></source>,不影响后续 -
<img>的src必须是 JPEG 或 PNG,且尺寸需与最小srcset一致(如post-400w.jpg),否则不支持<picture></picture>的老浏览器会拉伸失真
常见错误:明明写了 <picture></picture>,为啥还是加载了大图?
问题通常不出在语法,而在资源路径、尺寸声明或兜底逻辑。
-
srcset中的图片实际不存在(404),浏览器静默降级到下一个<source></source>,最终落到<img>—— 但如果你的<img src>指向的是未压缩的大图,就白忙了 - 漏写
sizes属性,浏览器无法预估渲染宽度,可能为 100vw 的<img>选择 1200w 版本,即使用户在手机上看 -
media条件重叠或留空隙,例如只写了(min-width: 768px)和(min-width: 1200px),但没覆盖 768–1199px 区间,中间设备会 fallback 到<img> - 本地开发时用 file:// 协议打开 HTML,部分浏览器禁用
type检测,直接跳过webp<source></source>,务必用http://localhost测试
静态博客里,<img> 的 alt 和 width/height 不能省
这不是优化技巧,而是防止布局偏移(CLS)和保障可访问性的硬性要求 —— 尤其对无 CSS 的 RSS 阅读器或屏幕阅读器用户。
-
alt必须描述图像内容,不能写“图片”或留空;技术博客的代码截图可写alt="React useEffect 依赖数组为空数组时的执行流程图" -
width和height建议设为图片原始尺寸(如width="800" height="450"),浏览器据此预留空间,避免图片加载后页面“跳动” - 若用 CSS 控制响应式宽高(如
width: 100%; height: auto),仍要保留这两个属性,否则 CLS 分数会变差 - 不要依赖
sizes替代width/height:前者只影响资源选择,后者才影响布局占位
真正难的不是写对标签,而是为每张图准备 3–4 个裁剪/压缩/格式版本,并确保 media 条件覆盖所有真实设备断点 —— 很多博客只做了格式回退,却忘了 DPR 和艺术指导(art direction)这两层。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











