PNG透明度有助于ie6!

时间:2009-11-25 14:57:44

标签: internet-explorer-6 png

我在IE6中的png透明度有问题.. 以下是需要修复的代码

<input type="image" alt="rtf" src="/components/i/images/icons/rtf.png"/>

我在这个论坛上看到了一些帖子,但我无法理解...... 任何人都可以带我完成修复过程吗? thankx ..

5 个答案:

答案 0 :(得分:9)

在该代码中没有什么可以解决的,因为它的IE被破坏了。您可能需要查看解决方法:http://www.twinhelix.com/css/iepngfix/

答案 1 :(得分:4)

阅读此SO Post

答案 2 :(得分:1)

基本上IE6不能正确地执行Alpha透明度。它具有使用PNG-8图像(具有布尔透明度)的透明度,但根本无法处理PNG-24。

这是默认位置。

如果你在IE6中需要全面的Alpha透明度,那么你最好的选择就是使用一个脚本来引入使它工作的黑客。有supersleight这很慢。或者更好的选项是DD_BelatedPNG,它不依赖于AlphaImageLoader。

答案 3 :(得分:0)

我应该指出,如果你已经应用了修复,那么在使用透明PNG时,IE是非常错误的。这是因为AlphaImageLoader有一个主要缺陷,可能导致浏览器挂起。 This link has more details about a fix that works around the lockukp.但是,在我的测试中,即使是那种广泛的修复也是不够的。在查看带有PNG的页面时,我们仍然经历过IE6浏览器锁定。

通过使用8位alpha通道PNG,您可以通过IE中的优雅降级以不同的方式解决问题。没有多少工具可以执行此操作,但您可以找到信息herehere。 8位图像不会崩溃IE,在IE7 +和所有其他浏览器中看起来都不错。 IE6将看到没有透明部分的图像。这可能适合您的设计。如果没有,我会考虑改变设计,如果你关心IE6的话。它根本不稳定。

答案 4 :(得分:0)

请勿将PNG24用于图标。将图标转换为PNG8并粉碎元数据。这解决了IE6 Bug,节省了流量并使您的页面更快。

您可以使用pngout进行转化。要粉碎PNG,您应该使用pngoutadvpngoptipngpngcrush

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB -brute -l 9 -max -reduce -m 0 -q FILE
optipng -o7 -q FILE
pngout FILE -q -y -k0 -s0
advpng -z -4 FILE

如果破碎元数据的部分要复杂,只能将图像保存为PNG8 :)