1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /* Correctly handle PNG transparency in Win IE 5.5 & 6. Copyright 2007 Ignia, LLC Based in part on code from from http://homepage.ntlworld.com/bobosola. Edit: Jena.want Date: 2008.11.30 Web: www.AOBODO.com | www.IsHere.cn Use in with DEFER keyword wrapped in conditional comments: <!--[if lt IE 7]> <mce:script defer type="text/javascript" src="pngfix.js" mce_src="pngfix.js"></mce:script> <![endif]--> */ (function fixPng() { var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) if ((version >= 5.5 && version < 7.0) && (document.body.filters)) { for(var i=0; i var img = document.images[i]; var imgName = img.src.toUpperCase(); if (imgName.indexOf(".PNG") > 0) { var width = img.width; var height = img.height; var sizingMethod = (img.className.toLowerCase().indexOf("scale") >= 0)? "scale" : "image"; img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src.replace('%23', '%2523').replace("'", "%27") + "', sizingMethod='" + sizingMethod + "')"; img.src = "images/blank.gif"; img.width = width; img.height = height; } } } })(); |
这是打好包的文件,需要的朋友可以下载试试。msiepng
另外,如果PNG图片做背景的话,在IE6下也会出现不透明情况,以上脚本只解决了页面中的PNG图片透明,如果是CSS样式中使用了透明的PNG图片,则可以使用以下方案解决:
1 2 3 4 5 | #png { background: url(绝对路径/images/bg.png) repeat; _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src="绝对路径/images/bg.png"); _background:none; } |
找了这么多个解决PNG背景不透明的方法,没有一个十全十美的,郁闷….