【问题标题】:PNG tranparency help in ie6!ie6中的PNG透明度帮助!
【发布时间】:2009-12-08 01:35:19
【问题描述】:

我在 IE6 中遇到了 png 透明度的问题。 下面是需要修复的代码

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

我在这个论坛上看到了一些帖子,但我不能清楚地理解.. 任何人都可以指导我完成修复它的过程吗? 谢谢。。

【问题讨论】:

标签: internet-explorer-6 png


【解决方案1】:

您无法在该代码中修复任何内容,因为 IE 已损坏。您可能想在这里查看解决方法:http://www.twinhelix.com/css/iepngfix/

【讨论】:

    【解决方案2】:

    阅读此SO Post

    【讨论】:

      【解决方案3】:

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

      这是默认位置。

      如果您在 IE6 中需要完整的 alpha 透明度,那么您最好的选择是使用一个脚本,该脚本引入了使其工作的 hack。 supersleight 很慢。或者更好的选择是 DD_BelatedPNG,它不依赖于 AlphaImageLoader。

      【讨论】:

        【解决方案4】:

        我应该指出,如果您应用了修复程序,那么在使用透明 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,我会考虑更改设计。它根本不稳定。

        【讨论】:

          【解决方案5】:

          不要将 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 :)

          【讨论】:

            猜你喜欢
            • 2010-10-16
            • 1970-01-01
            • 1970-01-01
            • 2010-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-19
            • 1970-01-01
            相关资源
            最近更新 更多