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.htc
、checkerboard.gif
、blank.gif
这些素材,还有示例页index.html
和测试图alixixi.png
。照着用一遍就明白了,操作不复杂。
如果你还在兼容老项目,或者公司后台系统还跑在 IE6,那这些方法能救你一命。建议先试 JS 法,再考虑 HTC,能少写 CSS 就少写点。
164.07KB
文件大小:
评论区