Html 为什么internet explorer会更改此png文件?

Html 为什么internet explorer会更改此png文件?,html,internet-explorer,png,Html,Internet Explorer,Png,我建立了一个网站,我有一个png文件,它是一个带边框的图像,带有阴影阴影,在firefox和chrome中看起来很好,阴影很微妙,很干净(就像在photoshop中一样) 但当我在Internet explorer(6、7或8)中查看时,它显示如下: 阴影显示为全黑(无褪色)且不连续 同样,这只是html页面中的纯图像(不是javascript阴影脚本或CSS) 有人对为什么png图像在Internet Explorer上显示不同有什么建议吗。IE版本6、7、8不完全支持.png文件透明,这

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

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

阴影显示为全黑(无褪色)且不连续

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


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

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

一个很好的解决方法是使用AlphaImageLoader过滤器,该过滤器适用于所有版本的IE。 支持文档和我过去成功使用的示例:


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

您是否有可能通过
标记重新缩放图像?如果是,您可以添加

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

强制IE在图像上使用双三次插值。这可能会解决问题。

我通过以下几点解决了这个问题:

  • 此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;
    }
    
  • 在jquery循环中设置clearType=false:

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

  • 我至少知道IE6,它不会呈现PNG透明。没有在其他地方测试过。谷歌
    ie PNG补丁
    ,或仅适用于IE6,IE7带来了24位alpha trasnparent PNG支持。IE7/8支持IE7/8,但直到IE9才完全解决该问题。IE7/8仍然存在不透明度渲染问题,以及在.png文件中正确渲染渐变的问题。