PNG圖片作為網(wǎng)頁圖的一個好處是它允許有透明背景,這一點比gif格式做得要好,但也有不如意的地方,就是在FireFox上PNG的透明背景顯示得很好,但是在IE中就做不到了,這就需要濾鏡技術(shù)的幫助。
比如有一張圖片作為logo,它放在一個id為logodiv的DIV中,在CSS中是這樣定義的:
#logoDiv{
width:300px;
height:100%;
background:transparent url(../img/logo.png) no-repeat -65px 0px;
}
這張圖片在FF顯示沒有問題,在IE6中就需要加上這樣一段:
*html #logoDiv{
width:300px;
height:100%;
margin-left:-65px;
background-color:transparent;
background-image:none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="web/img/logo.png", sizingMethod="crop");
}
這段代碼FireFox是不認(rèn)識的,會被略過,圖片會繼續(xù)上面#logoDiv的效果,而IE會用下面一段取代上面這一段,所以濾鏡透明圖片的效果就出現(xiàn)了。這兩段代碼放在一起,無論客戶瀏覽器是IE6或是FireFox都能適應(yīng)了。
使用濾鏡有兩點需要注意的:一是圖片地址是網(wǎng)頁相對app的地址,不是css相對app的地址,所以上面兩處路徑會有差異;另外一點是在不同的IE濾鏡的寫法也有差異,需要根據(jù)客戶瀏覽器實際情況調(diào)整一下。
具體代碼請見,其中有三處使用了濾鏡,分別是logo,主菜單左側(cè)和右側(cè),您可以從下面的代碼中去尋找它們
http://www.box.net/shared/tz5k1um68l
http://www.box.net/shared/mbdf2e85yi