![]() |
1
13
底线是,如果您希望在PNG中使用alpha透明,并且希望它在IE6中工作,那么您需要应用alphaImageLoader过滤器。 现在,有很多方法可以做到这一点:特定于浏览器的黑客、条件注释、javascript/jquery/jlibraryofchoice元素迭代、通过用户代理嗅探提供服务器端CSS服务…… 但所有的问题归根结底都是应用了过滤器,去除了背景。 |
![]() |
2
1
下面是我喜欢的一个特定的解决方案,使用javascript(jquery): http://jquery.andreaseberhard.de/pngFix/ 它很容易添加到一个现有的网站,处理各种各样的图像(表单按钮,背景,常规的img标签等),并使您的CSS保持整洁。 |
![]() |
3
1
这很可能是最好的方法。但请记住,IE6在处理PNG文件时并没有正确地实现,这不仅仅是阿尔法转换;由于IE没有正确地实现gamma,颜色空间被破坏,因此PNG文件经常显示“比它们应该显示的更暗”。
|
![]() |
4
1
图像加载器是IE6唯一可用的修复程序。请注意,它的PNG支持非常初级(也包括IE7),不能正确处理循环透明背景。当我试图设计一个透明容器的网站时,我很难理解这一点。当然,在火狐中工作得很好。 对于小范围的背景和任何透明的前景图形,修复应该是可以的,但是我再次建议不要设计一个使用大量透明的Internet Explorer的网站。 最后,我的解决方案是为IE显示一个平面颜色,但保留了其他浏览器的透明度。幸运的是,最终并没有对设计造成太大的伤害。 |
![]() |
5
1
另一种解决方法是使用两个单独的图像,例如一个GIF和一个透明PNG,并相应地针对您的CSS:
IE6不理解CSS子选择器,因此将忽略该规则,而了解该规则的浏览器将为您提供一个透明的PNG。 唯一的缺点是,你必须有两个独立的图像,而设计可能看不到 确切地 同样的跨浏览器,但只要它看起来不坏,你应该是好的。 |
![]() |
6
1
这里有两个不使用alphaImageLoader过滤器的选项。
对我来说,如果只发送matted.gif到ie6是不可行的,我使用 Fireworks to add an IE6-friendly palette to the .PNG . |
![]() |
7
0
对于img元素,通常的解决方案是将src更改为指向1x1像素透明的gif,然后使用相同的过滤黑。 |