如何在 Chrome 中显示 .webp 而在 Firefox 或 IE/Edge 中显示 .jpg?

How to show .webp in Chrome and .jpg in Firefox or IE/Edge?

是否有任何工作示例可以在 Chrome 中显示 .webp 格式文件,在 Firefox 和 IE / Edge 中显示不同的 .jpg 格式文件?

我现在使用这个 CSS 代码:

#bgbox {
    background-imgage: url('../img/bg.webp');
}

有没有-moz-background-image之类的?

最简单的方法是使用 <picture> 元素并设置带有 jpg 回退的 webp 源。您可以有多个来源,浏览器将尝试加载第一个兼容的来源,或者如果 none 有效则使用回退。

<picture>
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" />
</picture>

如果您需要设置背景,则需要采用不同的方法。您可以使用 Modernizr 来检测浏览器是否支持 webp 并基于此应用不同的样式。

.image {
  background-size: cover;
  width: 100px;
  height: 100px;
}

.no-webp .image {
  background-image: url('https://www.gstatic.com/webp/gallery/4.jpg');
}

.webp .image {
  background-image: url('http://www.gstatic.com/webp/gallery/4.webp');
}
<script src="https://cdn.jsdelivr.net/modernizr/3.3.1/modernizr.min.js"></script>
<div class="image"></div>

您也可以使用图像集,例如:

#bgbox {
   background-image: url('https://www.gstatic.com/webp/gallery/4.jpg');
   background-image: -webkit-image-set(url('http://www.gstatic.com/webp/gallery/4.webp')1x );
}

因此不支持 image-setwebp 的浏览器将使用默认背景图像。所以你不需要像 modernizr

这样的 javascript