【问题标题】:why does internet explorer change this png file?为什么 Internet Explorer 更改此 png 文件?
【发布时间】:2011-11-03 01:31:52
【问题描述】:

我建立了一个网站,我有这个 png 文件,它是一个带有阴影阴影的带边框图像,在 firefox、chrome 中看起来很好,其中的阴影是微妙而干净的(就像它在 photoshop 中的样子)

但是当我在 Internet Explorer(6、7 或 8)中查看时,它显示如下:

投影显示为全黑(不褪色)且不连贯

同样,这只是 html 页面中的纯图像(不是 javascript 阴影脚本或 CSS)

有人对为什么 png 图像在 Internet Explorer 上显示不同有什么建议吗?

【问题讨论】:

  • 我至少知道 IE 6,它不会呈现 PNG 透明度。其他的没测试过。谷歌ie PNG fix,或使用DD_belatedPNG

标签: html internet-explorer png


【解决方案1】:

您是否有机会通过<img /> 标签重新缩放图像?如果是这样,您可以添加

img {
   -ms-interpolation-mode: bicubic;
}

到您的 CSS 以强制 IE 在图像上使用双三次插值。这样就可以解决了。

【讨论】:

    【解决方案2】:

    我用多种方法修复了它:

    1. 这个CSS:

      img {  
      background: transparent;
      
      -ms-filter:   "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE8 */
      
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);         /* IE6 & 7 */
      zoom: 1;
      }
      
    2. 在 jquery 循环中设置 clearType = false:

      $(function () {
         $('#s1').cycle({ fx: 'fade', speed: 1500, cleartype: false, timeout: 4500 });
       });
      

    【讨论】:

      【解决方案3】:

      IE 版本 6、7、8 不完全支持 .png 文件的文件透明度,这是一个已知错误。我相信这个问题已在 IE9 中得到解决。

      一个好的解决方法是使用适用于所有 IE 版本的 AlphaImageLoader 过滤器。 我过去成功使用的支持文档和示例解决方法: http://support.microsoft.com/kb/294714.

      另一种解决方法是将 .png 转换为透明的 .gif 文件。

      【讨论】:

      • 这仅适用于 IE6,IE7 带来了 24 位 alpha 透明 PNG 支持。
      • 为 IE7/8 引入了支持,但直到 IE9 才完全修复该问题。 IE7/8 仍然存在不透明渲染问题,并且使用 .png 文件正确渲染渐变。
      • 好吧,您在评论中添加的链接表明这只是 IE6 的问题。
      猜你喜欢
      • 1970-01-01
      • 2011-08-15
      • 2018-04-24
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      相关资源
      最近更新 更多