WebP图片回退时旧浏览器显示空白怎么办? 司徒奕卓 提问于 2026-02-03 23:05:32 阅读 62 优化 我在项目里用picture标签做WebP回退,代码写成这样: <picture> <source srcset="logo.webp" type="image/webp"> <img src="logo.png" alt="logo" /> </picture> 但测试时发现IE11和Android 4.4设备直接显示空白,明明回退的PNG是存在的。我之前还试过把标签放在外面,结果变成两个图片重叠了。有没有更好的兼容方案? 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 ___海宇 Lv1 你这个问题可以试试在 source 标签里加个 width 和 height 属性,或者给 img 标签设置固定尺寸,防止 IE11 和 Android 4.4 处理不当导致空白。 回复 点赞 2026-03-22 18:10 Good“春明 Lv1 这问题很常见,咱们来一步步排查。 首先 标签在 IE11 和 Android 4.4 上确实支持不好,尤其是 Android 4.4 的 WebView 基本不认这标签。这时候 fallback 的 按理说应该显示,但你遇到的是空白,说明浏览器压根没加载 ,可能是 阻断了加载。 解决方法有几个方向: ### 1. 用 JS 判断 WebP 支持,动态加载合适格式 function supportsWebp() { return new Promise(resolve => { const img = new Image(); img.onload = () => resolve(img.width === 1); img.onerror = () => resolve(false); img.src = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAADAA=='; }); } supportsWebp().then(supported => { const logo = document.getElementById('logo-img'); logo.src = supported ? 'logo.webp' : 'logo.png'; }); HTML: <img id="logo-img" src="logo.png" alt="logo" /> ### 2. 后端检测 User-Agent,返回合适格式(适合服务器配置) 如果你能控制服务器,可以加个中间层根据 UA 返回对应图片格式。 ### 3. 用 CSS 实现 fallback(不推荐,控制力弱) <div class="img-wrapper"> <img src="logo.png" class="fallback" alt="logo" /> <img src="logo.webp" class="webp" alt="logo" /> </div> CSS: .webp { display: none; } /* WebP 支持的浏览器中显示 WebP 图 */ @supports (background-image: url('data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAADAA==')) { .webp { display: block; } .fallback { display: none; } } 建议优先用第一种 JS 判断方案,兼容性最好,维护也简单。我以前也踩过这坑,IE 和老安卓真不是省油的灯,用 JS fallback 最靠谱。 回复 点赞 11 2026-02-03 23:11 加载更多 相关推荐 2 回答 59 浏览 WebP图片在低版本浏览器不显示,picture标签回退没生效怎么办? 最近在项目里把所有图片换成WebP格式,测试时发现IE11和Edge旧版直接不显示图片。虽然知道这些浏览器不支持,但按照网上的方法写了picture标签:<picture><sour... W″浩然 优化 2026-01-28 09:05:26 1 回答 29 浏览 WebP图片在老浏览器上不显示怎么办? 我最近把网站的图片全换成WebP格式了,体积小了很多,加载也快。但测试时发现IE和一些旧版安卓浏览器完全不显示图片,页面直接空白。有没有办法优雅降级? 我试过用picture标签配合source,但C... FSD-小倩 优化 2026-03-08 19:07:18 2 回答 100 浏览 转换为WebP后图片显示空白怎么办? 我刚把项目里的JPG图片转成WebP格式,但页面上全显示空白了... 之前用的是普通标签,改成WebP路径后这样写的: <img src="logo.webp" alt="logo" width... 书生シ士俊 优化 2026-01-25 21:39:22 1 回答 36 浏览 WebP图片在老浏览器上不显示怎么办? 我最近把项目里的图片都转成WebP格式了,体积确实小了很多,但在一些老版本的 Safari 和 IE 上完全不显示,页面直接裂图。我知道可以用 picture 标签做兼容,但不确定具体怎么写才稳妥。 ... 红芹 优化 2026-03-16 09:21:17 1 回答 53 浏览 WebP图片在旧版浏览器上不显示怎么办? 我最近把网站的图片全换成WebP格式了,加载快了不少,但在一些老浏览器(比如Safari 13以下、IE)里直接显示空白。试过用picture标签加回退,但好像没生效,是不是写法有问题? 这是我的代码... 英洁🍀 优化 2026-03-14 22:39:17 2 回答 54 浏览 Vue项目用了WebP图片但旧浏览器显示不出来怎么办? 最近在Vue项目里把图片都换成WebP格式了,发现Chrome显示正常,但测试IE11和部分安卓机完全看不到图片。我查了文档知道这些浏览器不支持WebP,试过用标签加srcset属性:<img ... Top丶娅廷 优化 2026-02-19 11:53:25 1 回答 43 浏览 浏览器不支持WebP图片时,如何优雅地实现降级回退到JPEG? 最近在做图片格式优化时,把所有图片换成了WebP格式,结果发现低版本IE和某些移动端浏览器直接显示不出来。我试过用标签配合: <picture> <source srcset="im... 程序员静欣 优化 2026-02-17 07:02:31 2 回答 95 浏览 使用source标签时WebP回退JPEG在旧版浏览器显示空白怎么办? 我在用picture元素优化图片,用标签指向webp格式,然后的src放jpeg。但在IE和安卓4.4测试时图片显示空白,路径没问题,这是怎么回事啊? 代码结构是这样的: 检查过路径没问题,但旧版浏览... 若曦~ 优化 2026-01-28 12:58:26 2 回答 36 浏览 WebP图片在Safari上不显示怎么办? 我最近把项目里的JPG和PNG都转成WebP格式了,体积小了很多,但在Safari上图片直接裂开不显示。查了下说Safari 14之前不支持WebP,但用户还在用老版本,这咋办? 试过用<pic... 仙仙 ☘︎ 优化 2026-03-30 21:55:14 1 回答 29 浏览 WebP图片在老浏览器上不显示怎么办? 我最近把网站的图片全换成WebP格式了,体积小了很多,加载快了不少。但测试时发现IE和一些老版本Safari完全不显示图片,页面直接裂图了。 我知道可以用<picture>标签做兼容,但不... IT人克样 优化 2026-03-24 23:08:20
首先
标签在 IE11 和 Android 4.4 上确实支持不好,尤其是 Android 4.4 的 WebView 基本不认这标签。这时候 fallback 的![]()
按理说应该显示,但你遇到的是空白,说明浏览器压根没加载![]()
,可能是阻断了加载。解决方法有几个方向:
### 1. 用 JS 判断 WebP 支持,动态加载合适格式
HTML:
### 2. 后端检测 User-Agent,返回合适格式(适合服务器配置)
如果你能控制服务器,可以加个中间层根据 UA 返回对应图片格式。
### 3. 用 CSS 实现 fallback(不推荐,控制力弱)
CSS:
建议优先用第一种 JS 判断方案,兼容性最好,维护也简单。我以前也踩过这坑,IE 和老安卓真不是省油的灯,用 JS fallback 最靠谱。