IE6PNG透明兼容方案

IE6 的 PNG 透明问题,说白了就是不认 Alpha 通道。设计稿里透明背景一放到 IE6 里,直接翻车。方法还挺多,从 CSS 滤镜到 JS 脚本再到 HTC 文件,招儿是老点儿,但都挺实用。

CSS 滤镜法是最入门的,简单粗暴,用AlphaImageLoader滤镜。效果是能出,但只吃不带 Alpha 的PNG8,图层多点就崩。

Dean Edwards 的 PNGFix也算经典老库了,一行 JS 引入搞定,自动帮你透明图,适合懒人,兼容性也还不错。就是脚本多了之后要注意性能。

HTC 行为法用的是iepngfix.htc,CSS 里加behavior: url(iepngfix.htc)。能搞定PNG24,效果挺好,就是有时候会拖慢渲染,别太滥用。

还有一些奇技淫巧,比如checkerboard.gif + blank.gif模拟透明,适合背景纯色的时候。再比如双层 div 叠背景,看起来像透明,实际上是伪装出来的。

想偷懒?用 CSS3 渐变也行,但 IE6 完全不认,只能现代浏览器上用,兼容不考虑的项目可以试试。

最彻底的方式?是让用户升级浏览器,不过你懂的,有时候真不是你说了算。那就备个专门的样式文件给 IE6 用户,省得折腾。

资源包里有iepngfix.htccheckerboard.gifblank.gif这些素材,还有示例页index.html和测试图alixixi.png。照着用一遍就明白了,操作不复杂。

如果你还在兼容老项目,或者公司后台系统还跑在 IE6,那这些方法能救你一命。建议先试 JS 法,再考虑 HTC,能少写 CSS 就少写点。

rar 文件大小:164.07KB