【发布时间】:2022-05-13 06:58:22
【问题描述】:
我已经等待使用.webp 图像很长时间了非常。
现在是 2022 年,所以,鉴于:
- 图像格式已经存在了十年
- Chrome 于 2014 年 1 月开始支持
.webp - Firefox 于 2019 年 1 月开始支持
.webp
前天我决定冒险将网站上的一堆.png图像转换为.webp图像。
新手错误。因为,当然,我应该先检查:https://caniuse.com/webp,这会告诉我 Safari 在 macOS 11.0 Big Sur(2020 年 11 月) 之前的任何东西上都可以不支持.webp图片。
但我已经厌倦了等待。所以...我想 Safari 可以继续使用 .png 图像。
因为我绝对确实想向 Firefox、Brave、Chrome、Edge、Opera 等用户提供 .webp 图像。
如果我使用标记图像,声明一个或多个备用图像是基本的:
<picture>
<source srcset="a-webp-for-most-browsers.webp" type="image/webp">
<source srcset="a-png-for-safari.png" type="image/png">
<img src="a-png-for-safari.png" alt="My Image">
</picture>
但是(叹气)在这种情况下,图像是 CSS 背景图像,因此创建后备的选项更加有限:
- CSS
image-set目前还有pretty low support - 使用
@supports的 CSS 特征查询不会扩展到图像格式。
我是否仅限于通过 PHP 进行浏览器嗅探,像这样:
if (preg_match('/Mac OS X/', $_SERVER['HTTP_USER_AGENT'])) {
$Body_Element_CSS_Class_List .= ' oh-no-here-comes-safari';
}
我可以采用比浏览器检测更好/更可靠的方法吗?
【问题讨论】:
-
在此处查看有关背景图像的答案之一:stackoverflow.com/questions/58487035/…
-
谢谢,@Rob。你的意思是哪个答案?维罗妮卡瓦特的回答?我认为这个答案已经过时了。
-
就是那个,但我可能看得太快了,因为我不得不离开。
-
@Rob - 不用担心。老实说,在我完全理解它之前,我必须阅读 Veronica 的答案 2-3 次。无论如何,我感谢您对上述问题感兴趣。在哪一点上......我想我可能已经找到了解决方案。我现在正在测试它。如果一切正常,我会写在下面。
标签: css macos background-image webp browser-detection