众所周知IE6不支持透明的PNG图片,而PNG图片在Web设计方面表现力上,具有其它图形格式所达不到的效果,IE6这一致命缺陷极大地限制了Web设计的创意发挥。虽然解决IE6的透明PNG的方法也很多,从使用IE特有的滤镜或是expression,再到javascript+透明 GIF替代.但是这些方法都有一个缺点,就是不支持CSS中backgrond-position与background-repeat属性。而使用DD_belatedPNG.js可完美的解决IE6下PNG图片透明问题,并且支持backgrond-position与background-repeat. 这是其他方法所不具备的,同时DD_belatedPNG还支持a:hover属性,以及<img>。我制作的热点新闻主题,就加入了DD_belatedPNG处理导航PNG透明图片,使其在不同浏览器下保持相同的外观。
使用方法:
首先下载JS文件
0.0.8a.js (未压缩版本)
0.0.8a-min.js (压缩版)
之后在页面中引用代码:
- <!–[if IE 6]>
- <script type=”text/javascript” src=”下载下来的JS路径”></script>
- <script>
- DD_belatedPNG.fix(‘CSS选择器, 应用类型’);
- </script>
- <![endif]–>
引用函数是 DD_belatedPNG.fix() , 括号里分别填写应用PNG的CSS选择器(可使用ID选择器和类选择器)和应用类型(分为img和background两种)。
如DD_belatedPNG.fix(‘#box-one, img’) 或者 DD_belatedPNG.fix(‘.header, background’) 等。
这些可以简写成 DD_belatedPNG.fix(‘#box-one, .header, img,background’); 。
更多选择器的如 DD_belatedPNG.fix(‘#box-one, .header,#footer,.box-two a:hover, img,background’); 等等。
另外,为解决IE6下背景图闪烁,可以在页面中添加如下脚本
- <!–[if IE 6]>
- <script type=”text/javascript”>
- // <![CDATA[
- if((window.navigator.appName.toUpperCase().indexOf("MICROSOFT")>=0)&&(document.execCommand))
- try{
- document.execCommand("BackgroundImageCache", false, true);
- }
- catch(e){}
- // ]]>
- </script>
- <![endif]–>
另一篇参考链接:http://runbing.me/archives/dd_belated-png-ie6-png.html?replytocom=6592
DD_belatedPNG.js在ie6下存在的一些问题及修复:http://bbs.blueidea.com/thread-3040496-1-1.html
转载于:https://blog.51cto.com/chenhuixfyy/1162013