Web 页面背景图首选 WebP,次选 AVIF;WebP 兼具高压缩率、快解码与广浏览器支持,体积比 JPEG 小 25%–35%,支持透明通道且 CSS 行为一致。
Web 页面中用作背景的图片,优先选 WebP,次选 AVIF,老旧项目或需兼容 IE 时才退回到 JPEG 或 PNG。
它在压缩率、解码速度和浏览器支持之间取得最佳折中。Chrome、Firefox、Edge、Safari(14+)均已原生支持,background-image: url("bg.webp") 可直接使用,无需 polyfill。
background-size、background-position 等行为与 PNG/JPEG 完全一致AVIF 压缩效率更高,尤其对渐变、文字叠加类背景图优势明显,但支持度略窄于 WebP。
cwebp 或 avifenc 预处理,避免构建时卡顿除非明确要兼容 IE11 或某些嵌入式浏览器,否则不建议作为首选。
JPEG:适合照片类背景,无透明需求;但不支持 alpha 通道,半透明阴影会变成黑边PNG:必须用透明时才选,比如带阴影、毛玻璃叠层;但体积大,PNG-24 尤其明显GIF 做背景图——不支持半透明以外的 alpha,色彩只有 256 色,且无压缩优势pngcrush、jpegoptim 或 Squoosh 批量优化CSS 本身不支持格式探测或回退,所以“安全使用”依赖构建流程或服务端逻辑,而非纯前端声明。
url-loader 或 image-minimizer-webpack-plugin 自动转 WebP 并生成 fallback 注释bg@webp.jpg,再由 Ng
Accept 请求头重写为 .webp(需开启 ngx_http_image_filter_module 或用第三方模块)background-image——后声明的会完全覆盖前一条,无法实现“尝试加载 WebP,失败则用 JPEG”
/* ❌ 错误:后者永远生效 */
.bg {
background-image: url("hero.webp");
background-image: url("hero.jpg"); /* 这行覆盖上一行 */
}
/ ✅ 正确做法:靠构建或服务端控制单一 URL 指向最优格式 /
.bg {
background-image: url("/img/hero.bg");
}
真正难的不是选格式,而是让同一张背景图在不同设备、不同网络条件下,始终加载它能支持的最小可用格式——这需要构建链路或 CDN 配合,而不是靠 CSS 折叠解决。