網站實用程式

第一篇
PNG 檔案在 IE 中不會顯示透明度

適合程度: 初學者 一般程度 進階者 以上均宜
壹、報導前言:
PNG 檔案在 IE 6.0 以下版本不會顯示透明度,很多人沒有碰上都不會發現 IE 瀏覽器有這個嚴重 Bug 的問題。
IE 5.5 / 6.0 只要遇到有使用透明背景的 PNG 圖片,就會發生原本應該要透明的部分就會變成灰色的問題。
為了應付 IE Bugs 在顯示網頁的問題,很多設計師創造了很多的 Hack (對付的意思) 來補救他們的設計缺失。
因為如此現在許多人放棄 Internet Explorer 改用 Firefox、 Safari、 Chrome 這些符合 W3C 標準的瀏覽器。
但是 IE 瀏覽器取得方便 (隨機安裝),初學使用者不懂得更新版本或轉換其他瀏覽器,致使很多人還緊抱它不放。
身為網頁製作者,雖然很頭痛但又不能不考慮這些特定族群,今天就為有此需要者,整理這篇相關資料給您參考。
聲明:網路上類似資料很多,本報導技術資料大多取自網路分享資源,其版權與著作權均為當事人所有,特此聲明。

貳、經查 IE 瀏覽器還有以下幾項 Bugs:
微軟在世界上算是非常有知名度大的公司,而 IE 瀏覽器也是使用人數最多的一種上網瀏覽網頁工具之一。
因為 Internet Explorer 在設計的時候,完全沒有遵循 W3C 國際標準規範,以致造成後續一大堆問題。
這是微軟在自己的技術支援服務網站描述的文章:PNG 檔案在 Internet Explorer 中不會顯示透明度 Go

經上網一查原來 IE 瀏覽器,還有以下幾項嚴重的 Bugs:
Double Float-Margin Bug
Duplicate Indent Bug
Float Model Problem
Three Pixel Text Jog
Escaping Floats Bug
Creeping Text Bug
Phantom Box Bug
Peekaboo Bug
Inherited margins on form elements
Expanding Box Problem
Line-height Bug
Disappearing List-Background Bug
Guillotine Bug
IE 6 Duplicate Characters Bug
這些以後我們有機會再為大整理解決之道吧。


參、在開始之前我們先認識一下 PNG 檔案:
PNG 非破壞性網路傳輸圖形格式 (Portable Network Graphics),也可稱為可攜式網路圖形。
PNG 於 1996 由 Unisys公司向 W3C (World Wide Web Consortium) 提出並得到推薦認可的多媒體圖形格式。
PNG 將圖形檔案大小壓縮到極限,但又能保留所有與畫像品質,以利網路傳輸及電腦美術工作者需要。
PNG 是一種無損數據壓縮點陣圖圖形文件格式,具備阿爾法 (AlphaImageLoader) 通道 (半透明) 等特性。
PNG 的特點:二維交錯顯示、透明區域、非破壞性高階無失真壓縮、提供額外資訊、無專利權問題。
PNG 的缺點:不支援單個檔案儲存多張圖片、不支援 CYMK 模式、不能儲存 DPI 資訊、無法製作 gif 動畫格式。
想要了解更多 PNG 檔案,請上 W3 網站 Go 或維基百科,自由的百科全書進一步查看 Go

肆、PNG 檔案在 IE 6.0 以下與 7.0 以上版本所見差異處比較:
在 Internet Explorer 7.0 以上瀏覽器顯示狀況,PNG 檔案,呈現底色:透明,沒有 Bug 問題。
在 Internet Explorer 6.0 以下瀏覽器顯示狀況,PNG 檔案,呈現底色:不透明灰色,存在嚴重 Bug 問題。
PNG 檔案在 1996 年 10 月 1 日成為 W3C 建議後,其實很多網路瀏覽器經過很長時間才開始完全支持 PNG 格式。
請參考 PNG 檔案,底色:不透明灰色網頁比較範例 demo.htm
接下來就來介紹使用各種不同技術,解決這個 IE 6.0 以下瀏覽器 Bugs 問題。

伍、加入 iepngfix.htc 指令:
經實際測試在 IE 6.0 以下瀏覽器 PNG 檔案,不透明灰色問題,已徹底解決,依個人使用經驗,建議採用這個方式最為有效。
以下是本報導所有範例,我測試時使用的瀏覽器與版本:
IE 7.0 以上 、Avant 11.5 、Mozilla Firefox 3.5 、Safari 4.0 、Opera 9.63 、Chrome 2.0.172 、Netscape 8.0.3。
注意:加入 iepngfix.htc 指令後,對這些本身就無需處理 PNG 檔案問題的瀏覽器,也不該受影響。
您必須使用 IE 6.0 以下瀏覽器才能觀看到範例實際變化效果,如果您使用免費或便宜主機,恐怕無法支援(載入) HTC 行為。
如果您沒有 IE 6.0 以下瀏覽器?下面第捌、項有個免費不錯的 IE Tester 軟體,值得從事網頁工作者列入必備工具使用。
為了讓您能夠實際比較查看,我製作這個範例 iepngfix.htm 給大家參考。

陸、認識 HTC (HTML Component) 指令:
HTC 是從 IE5.0 開始的新技術,它是從 CSS 裡的 behavior 延伸出來的,因此可以透過 CSS 直接把功能散佈到整個網站。
HTC 的主要優點之一就是:瀏覽器將一直掛起頁面解析直到輸入文件全部被導入為止,常見用於日曆代碼 (Calendar) 功能。
HTC 文件的架構:一個標準的 HTC 檔含有一個 Script 區塊和一對可選的 Component 標記。
為了讓您能夠實際比較查看,我製作這個範例 htc.htm 給大家參考。

柒、其他解決辦法與技巧:(很抱歉!因空間與流量問題,以下所有實際範例僅提供付費會員使用)
注意:本段教材除教材會員可完整取得及教學會員可接受線上指導外,訪客與訂閱戶請自行參考所提供網址免費學習
01.加入 JavaScript pngfix.js 程式:
這個程式只使用一個 JavaScript 程式,就能將每張不會顯示透明度 PNG 圖檔變成透明圖檔,非常簡單好用。
注意:加入 pngfix.js 程式後,對這些本身就無需處理 PNG 檔案問題瀏覽器,也不受影響。
為了讓您能夠實際比較查看,我製作這個 (pngfix.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 PNG in Windows IE 網站,非本站教學會員不接受指導。

02.加入 img { behavior: url("png2.htc") } 指令:
這個與加入 iepngfix.htc 指令類似,差別是國人自己設計出來的,經實際測試我列的所有瀏覽器都可正常顯示。
注意:加入 img { behavior: url("png2.htc") } 指令後,對這些本身就無需處理 PNG 檔案問題瀏覽器,也不受影響。
為了讓您能夠實際比較查看,我製作這個 (png2.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 Vince's Blog 網站,非本站教學會員不接受指導。

03.加入 AlphaImageLoader 篩選器:
這是微軟在自己的技術支援服務網站文章介紹的 AlphaImageLoader 篩選器,經實際測試我列的所有瀏覽器都可正常顯示。
注意:加入 AlphaImageLoader 篩選器後,對這些本身就無需處理 PNG 檔案問題瀏覽器,也不受影響。
為了讓您能夠實際比較查看,我製作這個 (alphaimageloader.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 AlphaImageLoader 網站,非本站教學會員不接受指導。

04.加入 JavaScript DD_belatedPNG 程式:
這是使用 Javascript 程式,我沒實際使用過,但經實際測試我列的所有瀏覽器都可正常顯示。
注意:本程式對 IE 6.0 瀏覽器有效,但對 IE 5.5 瀏覽器無效,不建議使用。
為了讓您能夠實際比較查看,我製作這個 (belatedpng.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 DD_belatedPNG 網站,非本站教學會員不接受指導。

05.另一個加入 AlphaImageLoader 篩選器:
這是使用兩個 CSS 檔,其中 ie.css 就是運用能 AlphaImageLoader 篩選器處理,經實際測試我列的所有瀏覽器都可正常顯示。
注意:本程式對 IE 6.0 瀏覽器有效,但對 IE 5.5 瀏覽器無效,不建議使用。
為了讓您能夠實際比較查看,附上原始檔案 (ie6png/ie6png.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 DD_belatedPNG 網站,非本站教學會員不接受指導。

06.加入 JavaScript unitpngfix.js 程式:
這個程式是使用一張 clear.gif 透明圖檔 + JavaScript 程式設計而成,它會於每張 PNG 圖檔下插入這張張 clear.gif 透明圖檔。
注意:本程式僅對 Internet Explorer 6.0 瀏覽器有效,不適用於其他瀏覽器,不建議使用。
為了讓您能夠實際比較查看,我製作這個 (unitpngfix.htm) 範例給付費會員參考。
詳細使用方式,請參考原作者 Unit Interactive 網站,非本站教學會員不接受指導。

捌、沒有 IE 6.0 瀏覽器無法測試?
這裡提供一個免費的 IE Tester 軟體,它可測試 IE 5.5、IE 6、IE 7、IE 8 Beta,很試合從事網站製作的人。
網站上有操做示範,IE Tester 最新版本 v0.4.1 (24 MB),請上官方網站下載 Go
安裝與使用非常簡單,他們還提供中文 (Traditional Chinese) 語系下載 Go

玖、如何取得:

拾、結論與建議: