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

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

本自代码来自知更鸟博客

网友留言:

  1. 2012-09-13回复

    已经好久不用IE6了。IE9也很少用。

    • 博主板凳
      2012-09-14回复

      不怎么使用IE浏览器,就是在做网页的时候会用来测试,其余都很少会用。

  2. 站长你去百度申诉了吗?我有个站K了半个多月,申诉之后就放出来了。

    • 博主板凳
      2012-09-05回复

      刚K的时候投诉了一次,然后就没下文了。

  3. 2012-09-04回复

    DD_belatedPNG是很多设计者使用的方法 作为收费主题 的确也还是要考虑一下IE6 苦逼啊

  4. 2012-09-02回复

    表示用IE6很少了!

  5. 2012-09-02回复

    IE6是过时了,但还在用XP的只好用IE6。 8太慢了

  6. 对代码感觉很困吗,用插件也行吧

发表留言