2010-10-12 37 views
1

我使用ms專有的css屬性「filter」來控制元素的透明度。IE7中的CSS濾鏡屬性不會關閉

#square2 
{ 
    filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=50)"; 
    zoom:1; 
    padding:10px; 
    border:solid 5px #0cc; 
    height:200px; 
    width:400px; 
    background-color:#cc0; 
    color:#c0c; 
    font-size:2em; 
} 

該問題在IE7中突出顯示(在IE7瀏覽器模式下運行IE8)。解析器不會將filter屬性視爲「關閉」。因此,過濾器屬性包含所有其他屬性。

我想發佈一個屏幕截圖,但noobs是不允許的!

據我所知,我可以簡單地將過濾器屬性移動到CSS選擇器的末尾,但這是問題的簡化版本 - 這不是一個現實的解決方案。

當其後的另一個CSS選擇器出現問題時,它會變得更糟。新的CSS選擇器本身會被捕獲到前一個選擇器的過濾器屬性中。新的選擇器根本不起作用,就好像它不在那裏一樣。

我只是想讓IE7識別過濾器屬性的末尾。

非常感謝您的幫助。

謝謝

回答

2

你不要在你的CSS聲明中引用引號。只是

filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); 

來源:http://msdn.microsoft.com/en-us/library/ms532967(VS.85).aspx

+0

對於MSDN文檔+1。 – BoltClock 2010-10-12 21:18:55

+0

感謝您的快速響應!我嘗試了和沒有引號。該過濾器仍然至少有一個屬性進入下一個選擇器... – Nick 2010-10-12 21:21:08

1

避免引號-VS-沒有引號使用alpha濾鏡的簡化形式IE7/IE8的語法問題:

filter: alpha(opacity=50); 
0

阿爾法過濾器是隻是爲了簡化問題(我真的在使用Matrix過濾器),以便修復不適用。

引號/無引號的修復程序無法正常工作,所以我想出的答案是從樣式表中刪除過濾器樣式,並將其放置在母版頁的樣式標籤中。這使我可以使用多重選擇器與篩選器屬性 - 每個在他們自己的頁面樣式標記。

<html> 
<head> 
<style type="text/css"> 
     #square2{padding:10px;filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=50)";} 
</style> 
</head> 
</html> 

這使得IE7解析器識別屬性的末尾,但是不得不在不止一個位置維護樣式。

尼克