搜尋
首頁web前端html教學利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的_html/css_WEB-ITnose

接下来介绍几种PNG图片在IE6中不透明的解决办法

1、用自己的PNG,让IE6一边去吧

首先制作PNG图片的时候,另存为一个GIF图片,因为IE6是支持GIF图片透明,然后在css定义

.pngtest{ background:url(mark.png); _background:url(mark.gif);}

优点:方便、快捷,使用超简单

缺点:对于PNG图片只是某些局域透明,该方法比较奏效,但图片要是半透明的话,这种方法就实现不了

该方法延伸的另外一种解决办法:用PS或者其他图片编辑工具把png图片保存为8位格式的,这样IE6就支持透明了

2、CSS滤镜实现PNG图片半透明

.pngwrap{ padding:80px; background:green;}.pngtest{ width:165px; height:50px; overflow:hidden; text-indent:-9999em;background:url(http://www.qmtx3.com/data/mark/mark.png) no-repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.qmtx3.com/data/mark/mark.png' sizingMethod='scale' enabled=true);}

 

测试IE6利用CSS滤镜解决PNG图片透明问题

代码说明:_前缀的css属性只有IE6能识别,至于为什么要加上_background:none;,原因是前面定义的background图片的层深(可以理解为属性的z-index),比filter的要高,就会把filter定义的图片挡住,所以这里要让IE6的背景为none,PS:filter中的图片路径可以为远程图片路径,也可以是相对路径,如果使用相对路径,那应该是相对于页面的路径而非CSS

优点:不需要JS补丁,图片维护成本低,因为就一张png图片

缺点:filter定义的图片不支持 background-position:;(定位) background-repeat:;(平铺)属性,所以不能使用CSS Sprite技术,且该方法不能应用于img标签上,当应用于链接a标签上时有时会导致链接无法点击的情况,此时需要定义该a标签position:relative

3、HTC插件PNG图片IE6任我行

从5.5版本开始,Internet Explorer(IE)开始支持Web 行为的概念。这些行为是由后缀名为.htc的脚本文件描述的,它们定义了一套方法和属性,程序员几乎可以把这些方法和属性应用到HTML页面上的任何元素上去。详细的htc文件介绍请稳步

下载IE6浏览器PNG图片透明HTC插件

复制iepngfix.htc和blank.gif文件到你网站目录(复制 blank.gif、iepngfix.htc、iepngfix_tilebg.js(该文件是支持position和repeat属性必不可少的)到放置到某个位置;)

定义将会使用PNG图片的标签上定义,如下css样式

img,div{behavior:url(iepngfix.htc);}

 

修改iepngfix.htc中IEPNGFix.blankImg = 'images/blank.gif';路径为你的图片路径

让IE6浏览器加载JS文件

<!--[if IE 6]><script type="text/javascript" src="../js/iepngfix_tilebg.js"></script><![endif]-->

 

优点:配置好这个,那整个站点要使用就很方便了,一次配置,终身受用

缺点:配置相对方法,网站会多出三个文件,不支持元素hover等伪类,不能使用CSS Sprite技术,页面加载初期还是会看到png图片透明区域是灰色的

4、CSS版JS解决方法

该方法也需要一个透明的blank.gif图片,第三方法压缩包中有,这里不单独提供了,定义Css样式

img{_azimuth:expression(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none",this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",this.src = "blank.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''),this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "', sizingMethod='crop')",this.runtimeStyle.backgroundImage = "none")),this.pngSet=true);}

 

代码说明:this.src = "blank.gif" 路径也是相对于页面文件的,而非CSS文件

优点:方法相对简单

缺点:需要添加一个透明图片blank.gif,仅支持img标签即不支持元素设置的PNG背景图片,不支持元素hover等伪类,刚加载时也会出现灰色

5、原生态javascript解决办法

javascript解决IE6 PNG图片不透明的插件比较多,看个人喜好选择使用了

插件一:iepngfix

下载IE6浏览器PNG图片透明iepngfix插件

让IE6浏览器加载JS文件

<!--[if IE 6]><script type="text/javascript" src="js/iepngfix.js"></script><![endif]-->

 

插件二:DD_belatedPNG

该插件应该算是真正意义上的插件了,其使用方法很插件化

下载IE6浏览器PNG图片透明DD_belatedPNG插件 

本博备份:DD_belatedPNG.js

<!--[if IE 6]><script type="text/javascript" src="js/DD_belatedPNG.js"></script><![endif]-->

 

使用方法:

DD_belatedPNG.fix(".pngtest,#pngtest,.pngtest img,.pngtest:hover");

 

<!--[if IE 6]>    <script type="text/javascript" src="js/DD_belatedPNG.js"></script>    <script language="javascript" type="text/javascript">    window.onload = function(){        DD_belatedPNG.fix("*");    }    </script><![endif]-->

 

fix()参数传递要透明元素 或者子元素,该方法和jQuery选择$使用基本相同,只是多个元素间分隔用的是","而jQ用的是空格,为了更方便可以在文件结尾加上

w3cfuns的解决方法是,在每个用到png的标签都加上id或class,然后写成

window.onload = function(){   DD_belatedPNG.fix(".pngFix,.pngFix:hover");}

 

这样在页面中在需要透明的元素上加class="pngFix xx bbb",class中只要包含有pngFix就可以了

优点:支持img标签,CSS Sprite、背景、平铺、伪类,不需要配置啥,引入JS就可以使用,赞一个

缺点:加载初期PNG图片会出现灰色

插件三:EvPng

该插件使用方法包括优缺点都跟DD_belatedPNG相同,不再详述

下载IE6浏览器PNG图片透明EvPng插件

<!--[if IE 6]>    <script type="text/javascript" src="js/EvPng.js"></script>    <script language="javascript" type="text/javascript">    window.onload = function(){        EvPNG.fix("*");    }    </script><![endif]-->

 

插件四:jQueryPngFix插件

下载IE6浏览器PNG图片透明jQueryPngFix插件

博客备份:JqueryPngFix

修改pngfix.js文件中blankgif: 'images/blank.gif'透明GIF图片路径为相对页面路径

让IE6浏览器加载JS文件

<!--[if IE 6]><script type="text/javascript" src="js/pngfix.js"></script><![endif]-->

 

优点:支持img、css背景

缺点:需要jQuery库支持,不支持CSS Sprite、平铺、伪类,加载初期会出现灰色

有了这种方法htc的解决方案,显得多于了,不过这里介绍的htc解决IE6 PNG透明问题只是htc功能的冰山一角,htc在其他方面的应用远远比这强大的多

参考:

http://www.w3cfuns.com/forum.php?mod=viewthread&tid=297

http://www.cnblogs.com/rock506/archive/2010/11/30/1892067.html

http://www.xuanfengge.com/ie6-png-transparency-solution.html

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML文檔中的根標籤是什麼?HTML文檔中的根標籤是什麼?Apr 29, 2025 am 12:10 AM

theroottaginanhtmldocumentis.servesasthetop-levellementThateNcapsulatesAllotherContent,確保properdocumentstrumentstrumentsureandbrowserparserparsing。

HTML標籤和元素是同一件事嗎?HTML標籤和元素是同一件事嗎?Apr 28, 2025 pm 05:44 PM

文章解釋說,HTML標籤是用於定義元素的語法標記,而元素是完整的單位,包括標籤和內容。他們一起工作以構建網頁。查拉克計數:159

&lt; head&gt;的意義是什麼。 &&lt;身體&gt;在html中標記?&lt; head&gt;的意義是什麼。 &&lt;身體&gt;在html中標記?Apr 28, 2025 pm 05:43 PM

本文討論了Lt; Head&gt; &&lt;身體&gt; HTML中的標籤,它們對用戶體驗的影響以及SEO的影響。正確的結構增強了網站功能和搜索引擎優化。

&lt; strong&gt;,lt; b&gt;有什麼區別標籤和lt; em&gt;,&lt; i&gt;標籤?&lt; strong&gt;,lt; b&gt;有什麼區別標籤和lt; em&gt;,&lt; i&gt;標籤?Apr 28, 2025 pm 05:42 PM

本文討論了HTML標籤,和和關注其語義與表現用途及其對SEO和可訪問性的影響之間的差異。

請說明如何指示HTML中文檔使用的字符集?請說明如何指示HTML中文檔使用的字符集?Apr 28, 2025 pm 05:41 PM

文章討論了在HTML中指定字符,重點介紹了UTF-8。主要問題:確保正確顯示文本,防止亂七八糟的字符,並增強SEO和可訪問性。

HTML中的各種格式標籤是什麼?HTML中的各種格式標籤是什麼?Apr 28, 2025 pm 05:39 PM

本文討論了用於構建和造型Web內容的各種HTML格式標籤,強調了它們對文本外觀的影響以及語義標籤對可訪問性和SEO的重要性。

HTML元素的' ID”屬性與'類”屬性之間有什麼區別?HTML元素的' ID”屬性與'類”屬性之間有什麼區別?Apr 28, 2025 pm 05:39 PM

本文討論了HTML的“ ID”和“類”屬性之間的差異,重點是它們的獨特性,目的,CSS語法和特異性。它解釋了它們的使用如何影響網頁樣式和功能,並為

HTML中的'類”屬性是什麼?HTML中的'類”屬性是什麼?Apr 28, 2025 pm 05:37 PM

本文解釋了HTML“類”屬性在分組樣式和JavaScript操縱元素中的作用,將其與唯一的“ ID”屬性進行對比。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)