2009-06-21 76 views
1

我有一個PNG透明背景,在IE 6中不起作用。我已經通過用DIV替換少數使用該圖像的img標籤來解決問題,並且在CSS我使用:獲取透明PNG在IE6中工作在img標籤

#div {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="./Images/img.png")} 

我有這個問題是,然後我失去了ALT和標題屬性,使網站非常容易訪問。如果我將上面的CSS與img標籤一起使用,我會看到正確的圖像,但是當IE無法顯示圖像時,會顯示一個大的'X'。

有關如何通過在IMG標籤中正確顯示透明度讓IE能夠正常工作的建議?

回答

1

您可以繼續使用DIV標籤但仍然可以訪問的一種方法是在DIV元素中放置第二個SPAN標籤,並將ALT的值放入其中,然後將其設置爲不脫離頁面。 ..例如...

div.image { 
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="./Images/img.png"); 
} 

div.image span { 
    position : absolute; 
    top : -9999px; 
} 

然後HTML是這樣的......

<div class="image" title="The title for the image" > 
    <span>The ALT Text</span> 
</div> 

標題標籤仍然將在DIV工作,所以你應該對那部分沒問題。

我不認爲你可以簡單地隱藏文本(如顯示:無;),因爲我覺得屏幕閱讀器會尊重規則(如不讀它)

1

,你可以使用JavaScript來實現透明度在ie6中。有很多例子可以找到。這裏是我用過的一個鏈接。

http://jquery.andreaseberhard.de/pngFix/

+0

感謝這一點,但我試圖避免Javascript的解決方案,再次爲易用性 – Fermin 2009-06-21 20:14:37

0

我用一個小的JavaScript工具爲一對夫婦一個月前的解決這個問題。它被命名爲Unit PNG FIX,使用起來非常簡單。

1

另一種選擇是使用HTC對IE6的 - 在這裏看到的解決方案:

http://www.twinhelix.com/css/iepngfix/

只需要一個額外的行添加到您的css文件 - 對不起,可能仍然需要使用Javascript - 也不太清楚。

+0

看起來很有趣,我會檢查出來。謝謝。 – Fermin 2009-06-21 20:21:10

0

雖然這裏有人給出了一個JS實現,但這個解決方案也將在FF和其他瀏覽器中執行。有更好的想法,例如使用MS技術:)

其中之一使用的東西叫HTC(超文本組件,如果我沒有錯)。這就像......一個行爲CSS。這真的是一個XML文件,它可以讓你將一些功能附加到CSS選擇器。再次,一個MS唯一的技術。

總之,訪問這個網站: http://www.twinhelix.com/css/iepngfix/

我用這withing一個Drupal模塊,我感到非常高興。如果你想知道,這是該模塊:http://drupal.org/project/pngbehave

注:http://www.my-debugbar.com/wiki/IETester/HomePage 我使用的是Windows 2000的IE6(在VMware下運行時,如果你必須知道)來測試IE6網站:這並不在IE下測試工作。

0

IE6支持PNG-8透明,但不支持PNG-24。我最喜歡「修復」IE6的工具之一是IE8.js