2

我正在使用如下代码:

<picture class="image-holder">
    <source srcset="some_img.webp" media="screen and (max-width: 1200px)">
    <source srcset="some_img.webp" media="screen">
    <source srcset="some_img.jpg" media="screen and (max-width: 1200px)">
    <source srcset="some_img.jpg" media="screen">
    <img srcset="default_img.jpg" alt="">
</picture>

我希望当像某些版本的 Safari 这样的浏览器不支持 Webp 图像格式时,根据媒体查询回退到以下源而不是直接到 "default_img.jpg" 。

但取而代之的是,我得到的是直接回退到:

<img srcset="default_img.jpg" alt="">

有谁知道我做错了什么?

4

1 回答 1

3

好吧,我看到添加类型开始正常工作:

<picture class="image-holder">
    <source srcset="some_img.webp" media="screen and (max-width: 1200px)" type="image/webp">
    <source srcset="some_img.webp" media="screen" type="image/webp">
    <source srcset="some_img.jpg" media="screen and (max-width: 1200px)">
    <source srcset="some_img.jpg" media="screen">
    <img srcset="default_img.jpg" alt="">
</picture>

如果用户代理不支持 MIME 类型,则跳过源元素。

例如:如果宽度 < 1200px 并且 webp 不受支持,则回退到:

<source srcset="some_img.jpg" media="screen and (max-width: 1200px)">

参考:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture

于 2021-02-11T20:08:37.517 回答