IE6绝对是一个很头疼的问题,说真的,如果是我自己用的主题,一般不会太迁就IE6了,但是要制作收费主题,这IE6目前还是要兼顾的,首先面临的一个比较普遍的问题就是IE6下PNG图片无法透明,目前设计者们采用的较多的方法是通过DD_belatedPNG插件来实现IE6下PNG图片透明。所以,今天也转载分享一下,备个案,以后好找。
虽然解决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下载
0.0.8a.js (未压缩版本) | 0.0.8a-min.js (压缩版) | 英文说明
DD_belatedPNG使用方法
在页面中引用代码:
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]–> |