用DD_belatedPNG插件修复IE6 PNG

IE6是一个令人作呕的话题,个人极为厌恶IE6,并且恨屋及乌,不过没有办法,中国就是这么一个神奇的国度,到了2010年仍然有不少人以使用“简单、快捷”的IE6为荣,不知道浏览器为何物的也更加不提了,而这种人往往又是互联网中广告点击的生力军,消费能力强,所以你必须照顾到他们的感受。

我对IE6恨之入骨的重要原因之一,恐怕就是对PNG各种半透明的支持情况了。我们在其他浏览器可以轻松实现的图片半透明效果,到了IE6这儿就得纠结蹉跎,虽然IE6勉强的支持PNG-8格式的伪半透明,但这个和GIF图片的效果相差并不大,如果你使用PNG-32的话,你所有的半透明区域都会变成灰底。

网上有不少IE6上实现PNG半透明的工具,各有千秋,大多数使用了IE的一个滤镜:AlphaImageLoader,使用后会有各种诸如问题(比如background-position和background-repeat属性支持的不完善,有些还会擅自更改背景图片的尺寸)。DD_belatedPNG提供了一种新的选择,他使用微软的VML语言对PNG图片进行重新绘制,以达到半透明的效果,并且能支持background-position和background-repeat属性。

查看Demo | 打包下载

其使用方法也不难,先在此下载DD_belatedPNG ,然后插入head标签中:

将所有需要需要修补的元素加上class=”png”即可

PS:对于:focus和:hover伪类,则需要将以上代码中的 :
DD_belatedPNG.fix(‘.png’);
修改为 :
DD_belatedPNG.fix(‘.png,a.png:hover,.png:focus’);

BTW:虽然这样可以缓解IE6下PNG的问题,不过会带来性能问题,还有一些其他的问题,自然是不如对png半透明有原生支持的浏览器的。所以,赶快让该死的IE6下地狱吧。阿门!

ie6 png显示问题 | 简单空间 2013-08-07 21:50:51
| |

[…] 可以任意转载, 转载时请务必以超链接形式标明文章原始出处及此声明 […]

ying 2012-12-11 15:26:09
| |

又遇到IE6的麻煩問題 谷歌到此文 真是太感激了 XDD

张垒 2011-11-07 17:02:46
| |

加入JS代码后,用IE8打开网页时,提示参数无效。不知道怎么解决,您有什么方法吗?

Tao Zhu 2010-11-24 18:32:44
| |

想消灭IE6的最好方法就是尽快让XP滚蛋!

皇家元林 2010-09-10 19:48:15
| |

能教教我吗?谢谢!

皇家元林 2010-09-10 16:44:36
| |

你那个链接前面的图标是怎么加上去的?而且只是链接有,图片没有呢?

Runescapegold 2010-09-10 11:53:16
| |

ie6很少有人用了

夏小淚 2010-09-05 06:59:37
| |

我现在都推荐我身边的朋友使用chrome或是FF,有些不会用的,就把IE6直接升级IE8了~!!