PNG背景透明在網(wǎng)頁設(shè)計中的運用
發(fā)布時間:2012-07-06 15:14:18 作者:佚名
我要評論

PNG的背景透明在網(wǎng)頁中應用比較廣泛,但瀏覽器的兼容問題一直很讓人頭疼
PNG的背景透明在網(wǎng)頁中應用比較廣泛,但瀏覽器的兼容問題一直很讓人頭疼,用的CSS濾鏡再變通一下也能實現(xiàn)PNG背景半透明的兼容問題,只不過不支持背景的定位而已,也就是說不支持CSS SCRIPT。
一、CSS 濾鏡(兩種方法)
一般能用CSS處理的就盡量不要用JS了,個中的原因,你懂的……
本人整理了一下使用濾鏡的方法處理IE6下的PNG半透明,但該方法也有局限性,不能使用背景定位,也就是不能使用CSS Script
方法1
CSS核心代碼:
background-image:url(weather.png)!important; background-image:url(chabaoo.cn); filter progid:DXImageTransform.Microsoft.AlphaImageLoader(src='weather.png');
其他瀏覽器不需要處理,只需要單獨針對IE6作處理也可以。
方法2CSS核心代碼:
_background:none; _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='weather.png',sizingMethod='crop');
說明:
方法1
當CSS中出現(xiàn)兩個同樣的屬性,無論是否有!important,IE6只識別最后一個屬性。(IE6是識別!important的,后面的background-image起干擾作用。在Firefox下,!important被優(yōu)先執(zhí)行,filter濾鏡不起作用。這個其實只需要處理PNG在IE6中不支持半透明的問題,其他瀏覽器都是支持PNG的半透明的,所以不需要處理。該方法使用也有局限性,就是不支持圖片的定位,也就是不支持CSS Script。
方法2
同樣的也是利用濾鏡進行處理,但方法上與方法一有所區(qū)別,單獨針對IE6進行處理,利用“_”來針對IE6處理,其他瀏覽器對PNG的半透明是支持的,所以不再需要處理了。需要注意的是,sizingMethod='crop'須寫上,不然會出現(xiàn)一些莫名的邊角的問題,這個也是與方法一的方法有所區(qū)別的一點(有時候不寫也會正常,但保險起見,建議寫)。
二、DD_belatedPNG
DD_belatedPNG完美地解決了“iepngfix.htc”會出現(xiàn)的無法平鋪,沒法定位以及所加超鏈接的點擊區(qū)域無法使用等問題!
詳細文檔見http://dillerdesign.com/experiment/DD_belatedPNG/。這里就不提供翻譯了,哪位大大有時間有精力就來個翻譯文檔吧。08年末這東西剛出來的時候國內(nèi)就有人發(fā)過這個方法,但不知道為什么,沒引起什么“效應”,很多人還是在用上面說的“更具局限性”的方法。
使用方法很簡單,首先下載調(diào)用JS,然后在使用PNG的頁面中引用代碼,由于是針對IE6處理的,所以在外圍加上IE6的條件注釋,以便區(qū)別于其他瀏覽器。
1.<!--[if IE 6]>
<script type="text/javascript" src="下載下來的JS路徑"></script>
<script type="text/javascript">
DD_belatedPNG.fix('CSS選擇器, 應用類型');
</script>
<![endif]-->
引用函數(shù)是 DD_belatedPNG.fix() , 括號里分別填寫應用PNG圖片透明的CSS選擇器(可使用ID選擇器和類選擇器)和應用類型(分為img和background兩種)支持多個選擇器的使用,支持hove的事件,和CSS的寫法是一樣的,最后兩個是寫應用的類型就可以了,最后完整的應用代碼如下(注意必須是在全英文的狀態(tài)下輸入,很多人老是問我是什么原因不起作用,其實是因為輸入了中文的標點):
單選擇器和單應用類型:
html {filter:expression(document.execCommand("BackgroundImageCache",false,true));} 注:要注意上面選擇器的標點要在英文的狀態(tài)下,不然是沒有效果的!
DD_belatedPNG下載(內(nèi)含壓縮版和沒壓縮的版本): 點擊進行下載
IE6下的效果對比如下:

我相信,還有更好的兼容方式,希望大家在有更好的方法的時候,可與我一同分享,感謝你的閱讀!
相關(guān)文章
- 本文主要介紹了css九宮格布局的五種方法,內(nèi)容包括grid布局、flex布局、table布局、float浮動定位、inline-block+letter-spacing屬性這五種方法的實現(xiàn),感興趣的可以了解下2023-09-18
- 在Web開發(fā)中,經(jīng)常會遇到需要將元素水平和垂直居中的情況,今天,將為大家分享幾種CSS方法,讓你的元素輕松居中,讓頁面更美觀吸引人,感興趣的小伙伴可以自己動手試一試2023-09-08
- 相信大家在面試的時候也會經(jīng)常碰到css實現(xiàn)元素居中的方法,下面我介紹6種方法給大家,歡迎大家評論區(qū)交流2023-09-07
flex布局中使用flex-wrap實現(xiàn)換行的項目實踐
最近需要做個換行的布局,本文主要介紹了flex布局中使用flex-wrap實現(xiàn)換行的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需2022-06-16CSS布局之浮動(float)和定位(position)屬性的區(qū)別
今天看到有朋友留言問浮動和定位有什么區(qū)別,如何使用?今天找了篇文章,講的比較通俗易懂,供大家參考2021-09-23- 這篇文章主要介紹了css實現(xiàn)元素居中的N種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
- 這篇文章主要介紹了div水平布局兩邊對齊的三種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2021-01-21
waterfall瀑布流布局+動態(tài)渲染的實現(xiàn)
這篇文章主要介紹了waterfall瀑布流布局+動態(tài)渲染的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2021-01-19- 這篇文章主要介紹了頁面中有間隔的方格布局如何完美實現(xiàn)方法。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來2020-11-27
- 這篇文章主要介紹了css實現(xiàn)六種自適應兩欄布局方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習2020-10-28