WebP响应式图片怎么在不同设备上正确加载?
我用 <picture> 标签做了 WebP 的响应式图片,但发现有些老设备还是加载不了 fallback 的 JPG,页面直接空白了。是不是我的写法有问题?
我试过这样写:
<picture>
<source media="(max-width: 768px)" srcset="image-mobile.webp" type="image/webp">
<source media="(max-width: 768px)" srcset="image-mobile.jpg" type="image/jpeg">
<source srcset="image-desktop.webp" type="image/webp">
<img src="image-desktop.jpg" alt="示例图">
</picture>
但 Safari 13 以下的设备根本不显示图片,控制台也没报错,就是 img 标签没 fallback 成功,咋整?
1. 确保
2. 加上sizes属性帮助浏览器决策
3. 最保险的做法是用JS兜底检测
试试这样改:
如果还不行,可以用这个检测脚本放到footer里:
插件可以试试ShortPixel或WebP Express,它们会自动处理这些兼容问题。不过手动改的话上面这招基本够用了,我在几个老项目里都这么搞定的。