【问题标题】:alpha transparency solution in IEIE中的alpha透明度解决方案
【发布时间】:2009-12-05 15:26:31
【问题描述】:

我正在建立一个网站,其中包含大量具有透明背景的 png-24 文件。在 IE 6 中,它们显然没有正确显示,所以我需要某种可靠的、好的解决方案来解决 IE 中的 PNG 问题,并且需要很少的工作并且可靠。有什么好主意吗?

【问题讨论】:

    标签: internet-explorer-6 png-24 alpha-transparency


    【解决方案1】:

    对于 IE6 透明度,我遵循个人流程:

    1.如果只有一个或两个 PNG 图像(如徽标或普通图像),我只需使用 filter

    #selector {background:none; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='test.png', sizingMethod='crop');}
    

    问题:如果应用于链接,它将不再可点击。可能适用于h1#logo 并让a 透明。

    2.如果我有很多 24 位 PNG 文件,或特殊用例(重复背景等),我会使用 DD_belatedPNG

    对 IE7 + IE8 的重要提示: 您不能对 filter:alpha 进行动画处理或组合(它用于 IE 中元素上的整体 opacity,也被 jQuery 用于设置 opacity)具有 24 位透明 PNG 图像的属性。它将其更改为看起来像 8 位透明度,所有不是 100% 不透明或透明的东西都呈现黑色背景。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        网上有很多IE PNG 修复,基本上都使用相同的技术。较旧的 Internet Explorer 不直接支持 PNG 中的 alpha,但它们都有一个过滤器可以支持。因此,将以下代码编写为对象的 css 的一部分,会将 src 中的图像放到元素的背景中:

        filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png');
        

        这样,您可以轻松地在 Internet Explorer 中显示透明度。但是,仅获取一个 png 修复脚本(在 JavaScript 中)并将其包含在条件 cmets 内的页面中要容易得多。然后该脚本将使您的所有图像自动工作。

        【讨论】:

        • 实际上,一些更好的使用 VML 来使用 24 位 PNG。然后它们仍然可以用于重复背景等。
        • 什么是 VML?我确实需要它来重复背景,那么哪些允许呢?
        • 老实说,我并不完全理解它,但我相信它代表矢量标记语言......基本上是一个只有 MS 的 SVG。无论如何,它支持透明的PNG图像。我知道DD_belatedPNG 使用它(在我的回答中),可能还有@Danny 在他的回答中建议的twinhelix
        【解决方案4】:

        为此,我们使用了 Dean Edwards 的IE7。 (在 IE7 出现之前就这样命名了。)这种东西很好用。

        【讨论】:

          【解决方案5】:

          目前有很多选项可以让这个工作正常进行。标准是通过 CSS 应用 DirectX 过滤器来改变使 PNG 在 IE6 中透明。当网页从 IE6 或更低的客户端加载时,甚至有脚本会自动执行此操作。

          http://www.google.com/search?btnG=1&pws=0&q=transparent+png+ie6

          【讨论】:

            猜你喜欢
            • 2023-03-24
            • 2011-12-31
            • 2015-04-17
            • 2010-10-11
            • 2018-05-18
            • 1970-01-01
            • 2016-06-01
            • 1970-01-01
            • 2015-10-15
            相关资源
            最近更新 更多