如何使IE6支持css background png透明背景图片

博客新闻动态 7426

IE6不支持png-24透明图片是相当大的缺陷,而现在网页制作为了达到预想的设计效果大多都采用png透明图片,博客吧前些日子的仿美团网wordpress淘宝客主题meituan使用的就是png透明图片,IE6是位“老人家”,接受不了各式各样的新兴事物,因此需要另辟蹊径使IE6支持png24透明图片。对于img的png图片可以使用IE特有的滤镜或者expression实现透明,而对于css background的背景图片就需要使用DD_belatedPNG才能实现。

详细操作方法:

下载需要的js文件:压缩版下载 非压缩版下载

在网页中的<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行列了,大家作点贡献吧~~

本自代码来自知更鸟博客

精品推荐: