You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS background-image在Safari(iPhone6/7/8等)失效求助,其他浏览器正常

解决旧款iPhone Safari无法显示WebP背景图的问题

这问题我碰到过好多次了,旧款iPhone(6/7/8这类机型)搭载的Safari(对应iOS 13及以下版本)不支持WebP图片格式,这就是你遇到的核心问题。你的CSS代码里,后面的WebP背景图声明直接覆盖了前面的PNG,导致不支持WebP的Safari既识别不了WebP,又用不上原本的PNG fallback,自然就显示空白了。

下面给你几个靠谱的解决方案:

方案1:用CSS特性检测实现优雅降级

通过@supports规则,让支持WebP的浏览器用WebP,不支持的自动用PNG,代码调整如下:

.logo {
  background-image: url("/assets/img/logo.png");
  background-size: 100%;
  background-repeat: no-repeat;
  width: 200px;
  height: 100%;
}

/* 检测浏览器是否支持WebP背景图 */
@supports (background-image: url("data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==")) {
  .logo {
    background-image: url("/assets/img/logo.webp");
  }
}

这里用了一个极小的WebP占位图做检测,不会额外加载资源,兼容性也很可靠。

方案2:先确认PNG文件是否可用

有时候问题可能出在PNG文件本身,你可以先验证一下:

  • 在iPhone的Safari里直接访问 http://plocastinamestajleske.com/assets/img/logo.png
  • 如果图片打不开,说明路径写错了或者文件没上传好,先把这个问题解决,旧版Safari就能正常显示PNG了。

额外小提示

如果你的项目要兼容更多超旧浏览器,也可以用JS检测WebP支持性,动态给元素加类来切换背景图,但上面的@supports方案已经足够简洁好用,优先推荐这个。

内容的提问来源于stack exchange,提问作者Darko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:27:35