本文介紹了3種解決IE6下png圖片透明的問題,非常的詳盡,有相同需要的小伙伴們自己來看。
PNG圖片在IE6下的透明問題算是個(gè)老生常談了,只能怪那坑爹的IE6了,哈哈,這里小編匯總了一下幾種解決方案,推薦給大家。
1、濾鏡
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
屬性:
enabled:可選項(xiàng)。布爾值(Boolean)。設(shè)置或檢索濾鏡是否激活。true | false
true: 默認(rèn)值。濾鏡激活。
false:濾鏡被禁止。
sizingMethod:可選項(xiàng)。字符串(String)。設(shè)置或檢索濾鏡作用的對象的圖片在對象容器邊界內(nèi)的顯示方式。
crop:剪切圖片以適應(yīng)對象尺寸。
image:默認(rèn)值。增大或減小對象的尺寸邊界以適應(yīng)圖片的尺寸。
scale:縮放圖片以適應(yīng)對象的尺寸邊界。
各個(gè)屬性值所代表的含義:http://images.cnblogs.com/cnblogs_com/rainman/139529/o_ie6_png_filter.png
src:必選項(xiàng)。字符串(String)。使用絕對或相對 url 地址指定背景圖像。假如忽略此參數(shù),濾鏡將不會(huì)作用。
示例
復(fù)制代碼代碼如下:
.png {
background: url(絕對路徑/images/bg.png) repeat;
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src="絕對路徑/images/bg.png");
_background:none;
}
總結(jié)
背景無法平鋪;
背景圖片無法定位,即不可以使用background-position屬性,因此也不便于制作CSS Sprite;
同時(shí)在性能上也有小問題,頁面中次數(shù)不是很多的時(shí)候該辦法還是可行的
該濾鏡中的src屬性最好取絕對路徑,如果取相對路徑的話必須是相對于當(dāng)前網(wǎng)頁路徑,而不是我們習(xí)慣的“相對于css的路徑”
AlphaImageLoader濾鏡會(huì)導(dǎo)致該區(qū)域的鏈接和按鈕無效,解決的辦法是為鏈接或按鈕添加:position: relative;這樣條代碼,使其相對浮動(dòng)。
為了使濾鏡起作用,應(yīng)該為容器設(shè)置寬度和高度值。
只能當(dāng)做background使用,對于形式的PNG圖片需要變相處理。
sizingMethod='scale',其七夕哦啊過是拉伸圖片,可以模擬平鋪。
2、iepngfix.htc
網(wǎng)址:http://www.twinhelix.com/css/iepngfix/
實(shí)現(xiàn)原理也是濾鏡,它將這些操作封裝到一個(gè).htc的文件中,使用起來比較方便。
Demo:http://www.twinhelix.com/css/iepngfix/demo/
3、DD_belatedPNG
這個(gè)js插件使用了微軟的VML語言進(jìn)行繪制,而其他多數(shù)解決PNG問題的js插件用的是AlphaImageLoader濾鏡.
它支持backgrond-position與background-repeat.這是其他js插件不具備的.同時(shí)DD_belatedPNG還支持a:hover屬性,以及標(biāo)簽
網(wǎng)址:http://www.dillerdesign.com/experiment/DD_belatedPNG/
Demo:http://www.ediyang.com/demo/DD_Png/
基本上常用的PNG圖片透明問題的解決方法就這3種了,如有其它更好的方法,也請告之我一下,謝謝