IE6不支持png-24透明图片是相当大的缺陷,而现在网页制作为了达到预想的设计效果大多都采用png透明图片,博客吧前些日子的仿美团网wordpress淘宝客主题meituan使用的就是png透明图片,IE6是位“老人家”,接受不了各式各样的新兴事物,因此需要另辟蹊径使IE6支持png24透明图片。对于img的png图片可以使用IE特有的滤镜或者expression实现透明,而对于css background的背景图片就需要使用DD_belatedPNG才能实现。
详细操作方法:
在网页中的<head></head>之间添加以下引用代码
1 2 3 4 5 6 | <!–[if IE 6]> <script type=”text/javascript” src="JS路径"></script> <script> DD_belatedPNG.fix('CSS选择器, 应用类型'); </script> <![endif]–> |
CSS选择器可使用ID选择器和类选择器;应用类型分别为img和background两种;
例1:
1 | DD_belatedPNG.fix('.pngfix,background'); |
表示“类选择器为pngfix的background图片”
例2:
1 | DD_belatedPNG.fix('#pngfix,img'); |
表示“ID选择器为pngfix的img图片”
此外还有简写方法
1 | DD_belatedPNG.fix('.pngfix,#pngfix,background,img'); |
多个选择器的写法(对于有多处div需要使用png透明background背景图片的,建议添加一个共同的CSS选择器便于使用)
1 | DD_belatedPNG.fix('#box-one,.header,#footer,.box-two a:hover, img,background'); |
以上几种方法可以根据需要自由选择使用。
另外,IE6背景图片会闪烁的问题,可以通过在页面中添加以下代码解决:
1 2 3 4 5 6 7 8 9 10 11 | <!–[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]–> |
PS:IE6本该是要淘汰的浏览器,我本人是非常不喜欢的,做主题的时候,基本不会刻意去兼容IE6浏览器,除非是售卖的wordpress淘宝客主题(买家要求支持),而且谷歌、微软等都加入反IE6行列了,大家作点贡献吧~~
本自代码来自知更鸟博客