2013-03-26 58 views
0

我正试图修复涉及IE8及更低版本中背景大小的CSS3属性的显示问题。为了优化我的标志视网膜显示器,我实现了下面的代码:IE8背景大小的解决方法

.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样式表。

回答

1

这是我的方法,在工作中我们不再支持比IE7更少的支持。 1)重写IE7 2)重写IE8 & IE9 3)添加回为IE9

*selector {background:none;} /* IE7 */ 
selector {background:none\9;} /* IE9, IE8 */ 
:root selector {background: url('../img/logo_sm.png') no-repeat scroll transparent\9;} /* IE9 */