2013-03-26 57 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 */