You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:HTML5 Picture元素无法触发JPG降级加载的问题

问题

测试HTML5 <picture> 元素时,预期默认加载WebP格式图片,JPG作为降级备选方案。但当WebP图片地址不存在时,Chrome和Safari仅加载WebP失败,并未尝试加载存在的JPG,导致图片区域空白或显示问号图标。请问这段代码是否存在问题?

原代码:

<picture class="item-slide" data-slideid="1">
  <source srcset="https://imgnotexist.com/test.webp" type="image/webp">
  <img src="https://i.sstatic.net/QeSoC.jpg">
</picture>
问题原因

<picture> 元素的工作逻辑是:浏览器先检查 <source> 指定的格式是否支持,若支持则尝试加载对应资源;只有当浏览器不支持该格式时,才会回退到 <img> 标签的资源。

在测试场景中,Chrome和Safari都支持WebP格式,所以会优先尝试加载WebP资源。当该资源地址不存在导致加载失败时,浏览器不会触发降级到JPG的逻辑——因为它认为格式是兼容的,只是资源本身不可用,而非格式不支持。

解决方案

使用 <object> 标签替代 <picture>,它会在指定资源加载失败(无论格式不支持还是地址无效)时,自动渲染内部的降级内容:

<object data="https://imgnotexist.com/test.webp" type="image/webp">
 <img src="https://i.sstatic.net/QeSoC.jpg">
</object>

内容的提问来源于stack exchange,提问作者miles_holt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:38:17