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

使用Modernizr实现CSS雪碧图兼容WebP与PNG格式的配置问题

问题原因

你的代码存在CSS语法错误:.webp、.no-webp是Modernizr添加在页面根元素(通常是<html>标签)上的全局标识类,不能直接写在样式声明块内部作为属性前缀,这种写法会被浏览器判定为非法属性,直接忽略整个背景图规则,所以没有任何图片显示。

修正方案

需要把标识类作为选择器前缀,匹配根元素的类状态,从而命中对应浏览器场景的样式,修正后的代码如下:

/******************************************* Sprites *******************************************/
/* 支持WebP的浏览器样式 */
.webp #fancybox-close,
.webp .SI-FILES-STYLIZED .cabinet,
.webp .SI-FILES-STYLIZED .cabinet:hover,
.webp .arrow-link-down,
.webp .arrow-link-up,
.webp .big-btn,
.webp .big-btn:hover,
.webp .checklink-box ul li a,
.webp .close_button,
.webp .crlist,
.webp .crlist:hover,
.webp .ez-checkbox,
.webp .ez-checked,
.webp .ez-radio,
.webp .icon,
.webp .left-col .icon,
.webp .mid-btn,
.webp .mid-btn:hover,
.webp .minus,
.webp .minus:hover,
.webp .plus,
.webp .plus:hover,
.webp .search-btn,
.webp .search-btn:hover,
.webp .selectBox-arrow,
.webp .tip-boxes span.triangle,
.webp .title-icon,
.webp a.arrow-link,
.webp a.arrow-link-left,
.webp a.arrow-link:hover,
.webp a.fb-icon,
.webp a.fb-icon:hover,
.webp a.twitter-icon,
.webp a.twitter-icon:hover,
.webp div#tab-indicator,
.webp footer#footer div.container,
.webp li#login,
.webp li#login>a,
.webp nav.slides-nav ul li a {
    background-image: url(../img/sprite.webp);
    background-repeat: no-repeat;
}

/* 不支持WebP的浏览器样式 */
.no-webp #fancybox-close,
.no-webp .SI-FILES-STYLIZED .cabinet,
.no-webp .SI-FILES-STYLIZED .cabinet:hover,
.no-webp .arrow-link-down,
.no-webp .arrow-link-up,
.no-webp .big-btn,
.no-webp .big-btn:hover,
.no-webp .checklink-box ul li a,
.no-webp .close_button,
.no-webp .crlist,
.no-webp .crlist:hover,
.no-webp .ez-checkbox,
.no-webp .ez-checked,
.no-webp .ez-radio,
.no-webp .icon,
.no-webp .left-col .icon,
.no-webp .mid-btn,
.no-webp .mid-btn:hover,
.no-webp .minus,
.no-webp .minus:hover,
.no-webp .plus,
.no-webp .plus:hover,
.no-webp .search-btn,
.no-webp .search-btn:hover,
.no-webp .selectBox-arrow,
.no-webp .tip-boxes span.triangle,
.no-webp .title-icon,
.no-webp a.arrow-link,
.no-webp a.arrow-link-left,
.no-webp a.arrow-link:hover,
.no-webp a.fb-icon,
.no-webp a.fb-icon:hover,
.no-webp a.twitter-icon,
.no-webp a.twitter-icon:hover,
.no-webp div#tab-indicator,
.no-webp footer#footer div.container,
.no-webp li#login,
.no-webp li#login>a,
.no-webp nav.slides-nav ul li a {
    background-image: url(../img/sprite.png);
    background-repeat: no-repeat;
}

如果需要精简代码体积,可使用Sass、Less等CSS预处理器,通过变量、嵌套语法简化重复的选择器书写。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:57:03