2012-05-10 16 views
1

我帶圓角這裏測試半透明背景(CSS都在裏面HTML):CSS:我得到了IE9深色半透明的背景。爲什麼?

http://www.lucagiorcelli.it/test/milanificio_boxes/

他們在IE10罰款(見截圖:http://o7.no/KSvX2b)。但他們在IE9較深,對角鬼(見截圖:http://o7.no/KSw9P2)。

什麼是錯在我的CSS?

.yellowAlpha35 { 
/* Fallback for web browsers that doesn't support RGBa */ 
background: rgb(245, 221, 183); 
filter:alpha(opacity=35); 
/* RGBa with 0.6 opacity */ 
background: rgba(241, 144, 28, 0.35); 
/* For IE 5.5 - 7*/ 
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#23000000, endColorstr=#23000000); 
/* For IE 8*/ 
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#23000000, endColorstr=#23000000)"; 
} 

回答

1

據我記得--ms篩選器仍然在IE9中工作,它只是被標記爲棄用。所以在IE9中,您可以使用rgba()+ IE8所需的漸變背景。

要解決這個問題,您可以創建單獨的CSS文件IE8,IE9,等,或只使用一個CSS破解。例如:根在IE9推出,因此您可以使用

:root .yellowAlpha35 { 
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)"; 
} 

比準備多個CSS文件,並用條件註釋添加它們,除非你有更多的IE瀏覽器版本的具體規則更容易。

+0

它的工作原理!謝謝。 –

0

爲Rafaei說MS-過濾器仍然工作在IE9中,它只是標記爲已過時。避免這種事情的發生使用多個CSS罷了,基於瀏覽器上。這樣你可以離開-MS-濾波部分出來IE9 +,仍然有它在IE 8 這樣:

<!--[if IE 8]> 
<link rel="stylesheet" type="text/css" href="ie8.css" /> 
<![endif]--> 

<!--[if !(IE 8)]> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<![endif]--> 

更多信息link