解决 IE6下 PNG 图片不透明的最佳办法是什么?
知乎是怎么解决IE6下png图片不透明的?比如登录页知乎那2个字
知乎是怎么做的我不清楚。 要是我的话,会放弃PNG换用GIF
IE6支持索引透明模式,不支持alpha透明、也就是半透明的PNG,有三种解决方法,各有利弊,麻烦程度依次递增,解决问题的彻底性依次增加:
- 使用IE独有的滤镜 FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/fl.png) 优点:相对于以下的使用CSS的方法,节省资源,简单有效。 缺点:应用滤镜的部分不能滑鼠点击,不支持一些mouse事件,不支持background-repeat等。
- 引入unitpngfix.js: http://labs.unitinteractive.com/unitpngfix.php
&
& & 然后修改unitpngfix.js中clear变数指向的地址为配套的clear.gif的地址 优点:简单方便缺点:不支持background-repeat,会对图像进行拉伸
- 使用iepngfix: http://www.twinhelix.com/css/iepngfix/ 优点:支持背景重复等 缺点:比较麻烦,添加文件较多
没有最完美的方法,适当的时候用gif,最好的办法就是国人赶紧放弃IE6吧。
这个问题类似于「 在家做饭,没有高压锅,如何尽快煮熟一只老母鸡?」
解决方法:
1、最优方案:去买个高压锅。2、没有「尽快」,还是拿小火慢慢炖吧。回到这个问题:
1、最优方案:放弃ie6。
2、没有最优方案:http://www.zhihu.com/question/19669890最佳方案就是放弃IE6,兼容IE6的成本太大。。。
_background
如果只是做个博客,可以用滤镜解决。也可以用unipng这种插件,不过会有一些绝对定位上的bug。
如果做一个比较大的网站,最好就避免这种情况出现,对框架和性能都不好。对于这个问题,Microsoft只为Windows 2000用户提供了一个热补丁,但是,没有Windows XP的分,为了推广新版本的Internet Explorer,https://support.microsoft.com/zh-cn/kb/822071
这个貌似没有遇到过的。。
png-8的图片吧。一些特殊效果的图片,ie6就放弃吧。在一个比较大的项目或者框架,用滤镜会有很多问题。
推荐阅读: