html - 如何使用 CSS 加载基于浏览器支持的图像格式?
问题描述
我想在我的 CSS属性中使用WebP图像格式。background-image
但是,由于 WebP 是相当新的并且仍然不是所有新旧浏览器都支持,我还想添加对该图像的 JPEG 版本的支持作为后备。
我知道我可以使用<picture>
标签来做到这一点:
<picture>
<source type="image/webp" srcset="image.webp">
<source type="image/jpeg" srcset="image.jpg">
<img src="image.jpg">
</picture>
这将使浏览器加载第一个支持的格式。但是我可以仅使用 CSS 以某种方式实现相同的效果,因为我正在使用该background-image
属性设置背景图像吗?我知道我可以使用查询根据屏幕大小选择图像@media
,但是如何根据浏览器支持加载图像?
我试图寻找解决方案,但找不到。让我知道这是否是重复的并且解决方案已经存在。
谢谢。
解决方案
使用 2 张背景图片:一张使用 JPG 或 PNG,另一张使用 WEBP,浏览器会自动选择最佳的一张。
在 codepen 上找到此代码:Robin Rendle
CSS:
element {
width: 50vw;
height: 100vh;
background-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/14179/cust-housegreening-pup%402x-4cf7ada520811031a97bee12c06d9e9367f811bd86255ea60d40aa809cf58801.jpg');
background-image: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/14179/cust-housegreening-pup@2x-4cf7ada520811031a97bee12c06d9e9367f811bd86255ea60d40aa809cf58801.webp');
}
推荐阅读
- androidx - androidx 中的自定义 SwitchPreferenceCompat
- python - 没有名为“tkinter”的模块 - 出现错误
- java - 如果 DTO 类需要新的查询,我们应该怎么做?
- kdb - IPC 上的 FK 字段
- sql - 有没有办法获取 IBM Netezza 表中的所有列名?
- excel - 将日期写入单元格并更改日期格式
- node.js - lambda bundle 打包期间出现许多 webpack 错误
- tensorflow - Tensorflow:将两个模型依次导出为一个
- python - 为什么我的python版本hoare分区快速排序比lomuto分区慢?
- blockchain - Tezos 术语:私有节点、公共节点和 Bakers 之间有什么区别?