我正在尝试修复涉及 IE8 及以下版本的 background-size CSS3 属性的显示问题。为了优化我的视网膜显示器徽标,我实现了以下代码:
.logo {
background: url('../img/logo_sm.png') no-repeat scroll transparent;
text-indent: -999em;
transition: opacity 0.2s ease;
-webkit-transition: opacity 0.2s ease;
-moz-transition: opacity 0.2s ease;
margin: 0;
width: 141px;
height: 32px;
background-size: 141px 32px;
display: inline-block;
然后我添加了这些行以使 IE8 正确调整徽标的大小(因为它不尊重背景大小)
/* Make IE8 cooperate */
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src='../img/logo_sm.png', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader( src='../img/logo_sm.png', sizingMethod='scale')";
问题现在在所有版本的 IE 中,原始背景图像显示在来自这些过滤器的新的、正确调整大小的图像后面。
我该如何设置,以便 IE8 及以下版本忽略原始背景属性并仅呈现一张图像?如果可能的话,我想这样做而不需要单独的 IE 样式表。