img:src / alt / width / height

本示例不请求任何外部图片,图都是内联 SVG,确保离线也能跑。

一块蓝色示意图,上面写着 160x90

写了 width/height:浏览器先按 160×90 留好位置,图到位后不跳动。

橙色示意图

CSS 改宽度后,比例仍按属性里的固有尺寸算,不会先塌陷再撑开。

alt 写给三种读者

加载失败时这里会显示 alt 文本
alt 同时是:屏幕阅读器的播报内容、图片破图时的兜底文字、搜索引擎理解图片的唯一线索。

格式怎么选

SVG图标、logo、图表:矢量无损,但不能放照片
WebP / AVIF照片首选,同画质体积比 JPEG 小三成上下
JPEG兼容性兜底的照片格式
PNG需要透明通道、或截图类纯色大块面积
GIF动图请用 <video muted loop playsinline> 替代,体积小十倍以上

懒加载与破图排查

<img src="/img/hero.webp" alt="首页主图" width="1200" height="600" loading="lazy" decoding="async">

loading="lazy" 让首屏外的图等到接近视口才下载;首屏主图不要加,反而该写 fetchpriority="high"。

破图四步排查:① DevTools Network 面板看请求是不是 404;② 路径是否以 / 开头却忽略了站点部署在子路径(本站要带 /nuxt/ 前缀);③ 文件实际扩展名与代码里写的是否一致(大小写敏感);④ 本地双击打开能显示、部署后不显示 → 十有八九是相对路径层级问题。