大家做网页设计的都知道,IE7以下的IE版本不支持png背景透明!那么,我们应该怎么做呢?逍遥乐今天就把自己收集到的解决方法分享给大家,总有一个适合你!
方法一
以下方法能有效解决ie6下png透明问题,本人亲测可以正常使用,如果你在使用中出现问题,请看实例中的说明(英文不精的童鞋可以用谷歌翻译哟):
<!--[if lt IE 7]> <script type="text/javascript" src="images/iepngfix_tilebg.js"></script> <style type="text/css"> img, div, input { behavior: url("images/iepngfix.htc") } </style>
在页面中head部分加上如上代码,<!--[if lt IE 7]>是为了让IE6以下浏览器执行,其他浏览器不执行,因为IE6以上浏览器都支持png背景透明。
然后在images目录下放置如下三个文件:
虽然更换了下载方式,但资源并未删除,您可以在文章评论留言提醒我,逍遥将在第一时间补上此下载资源的链接。非常您的支持!点击立即留言
方法二:
使用DD_belatedPNG_0.0.8a-min.js
老外写的!很实用的!用法
<!--[if lte IE 6]>
<script src="DD_belatedPNG_0.0.8a.js" type="text/javascript"></script>
<script type="text/javascript">
DD_belatedPNG.fix('div, ul, img, li, input , a');
</script>
<![endif]-->
fix处是你需要进行透明化的标签,或者类都可以!!
这是js文件的下载地址:
资源下载框: 出现问题了,这里应该是一个资源下载框!当你看见此提示,是因为由于网站改版,下载方式变更,此处已无法显示。此资源原始ID:92
虽然更换了下载方式,但资源并未删除,您可以在文章评论留言提醒我,逍遥将在第一时间补上此下载资源的链接。非常您的支持!点击立即留言
方法三:
js代码:
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) if ((version >= 5.5) && (document.body.filters)) { for(var j=0; j<document.images.length; j++) { var img = document.images[j] var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { var imgID = (img.id) ? "id='" + img.id + "' " : "" var imgClass = (img.className) ? "class='" + img.className + "' " : "" var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' " var imgStyle = "display:inline-block;" + img.style.cssText if (img.align == "left") imgStyle = "float:left;" + imgStyle if (img.align == "right") imgStyle = "float:right;" + imgStyle if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" img.outerHTML = strNewHTML j = j-1 } } } } window.attachEvent("onload", correctPNG);
css代码:
#id{background:url(图片路径) ;_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src="图片路径");_background:none;}
1、新建一个JS文件为iepngfx.js,将以上JS代码拷贝到JS文件里
2、在HTML中声明只有IE6读取此新建JS文件iepngfx.js中
只允许IE6读取此JS文件方法:
<!--[if IE 6]>
<script src="images/iepngfx.js" language="javascript" type="text/javascript"></script>
<![endif]-->
3、在html中使用图片标签IMG运用PNG图片,在IE6试试看PNG图片背景是否透明了。
方法四:
大致同方法三
1、新建JS文件同上,命名为iepngfx.js,将方法三中的JS代码拷贝到JS文件里
2、在HTML中声明只有IE6读取此新建JS文件iepngfx.js中
只允许IE6读取此JS文件方法:
<!--[if IE 6]>
<script src="images/iepngfx.js" language="javascript" type="text/javascript"></script>
<![endif]-->
3、在CSS中运用PNG图片作为背景的地方加入以下CSS代码:
#id{background:url(图片路径) ;_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src="图片路径");_background:none;}
这样即可解决PNG图片在HTML中img作为图片图标背景不能透明或PNG图片作为网页背景background运用的一样实现PNG图片背景透明。
当然了我暂时就收集到这么多,如果您还有更好的方法,可以在评论中列出来!大家一起互相借鉴解决!
最新评论