当我想在浏览器支持的情况下使用webp图像,否则回退到jpg时,我会这样使用:
<picture>
<source srcset="image.webp" type="image/webp" />
<img src="image.jpg" alt="Something">
</picture>
还可以选择适合屏幕尺寸的图像尺寸:
<picture>
<source media="(max-width: 799px)" srcset="small.jpg">
<source media="(min-width: 800px)" srcset="big.jpg">
<img src="big.jpg" alt="something">
</picture>
因为我有所有的图像,所有的尺寸和两种格式,我想同时做上面的两个功能,所以我有两个小尺寸和大尺寸的webps和两个大尺寸和小尺寸的jpg。所以如果浏览器支持webp,只使用不同大小的webp图像(基于屏幕大小),如果不支持,则使用不同大小的jpg文件。
我想知道这是否可能。
我是这样测试的:
<picture>
<source media="(max-width: 799px)" srcset="small.webp">
<source media="(min-width: 800px)" srcset="big.webp">
<source media="(max-width: 799px)" srcset="small.jpg">
<source media="(min-width: 800px)" srcset="big.jpg">
<img src="big.jpg" alt="something">
</picture>
但它只选择与屏幕尺寸匹配的第一个
2条答案
按热度按时间z8dt9xmd1#
您需要在每个
source
上使用type属性,以便浏览器能够加载它所能理解的最佳格式,例如:例如:hiz5n14c2#
当然有可能。说实话,这很简单
这段代码几乎解释了自己。
它加载
webp
图像。onerror
处理未加载的图像。它将src
设置为jpg