您的位置:首页 > 其它

解决IE6中 PNG不透明的问题

2011-08-11 09:46 302 查看
相信很多朋友在制作网页时都会用到图片透明。使其部分透明的图片后面显示背景部分。

而现在流行的具有透明性的图片有GIF和PNG两种非常普及格式。

GIF和PNG

GIF(Graphics Interchange Format图像互换格式)可实现图像区域的部分或全局透明。现非常多的网站都将其运用到其中。

但是256色的限制GIF的使用范围。还有一个问题:譬如,当我们的图像边缘有阴影时,保存透明后会发现其边缘不是以渐变式透明显示,而是用灰度色显示而无透明而言。

解决上面GIF的缺陷方案最好方法就是使用现在网络上流行使用的另一种图像格式PNG(Portable Network Graphic Format流式网络图形格式)

但是PNG最大的问题就是,它在IE6下无法显示透明区域(Firefox、Opera、Safari均支持 PNG透明),会有一种灰白色代替成为其背景色。这不是PNG这个格式图片的问题,而是IE6的BUG,没有将PNG的Alpha通道打开,造成透明 PNG图片的在IE6上显示不出透明区域。

现在就有种方法是通过引入JavaScript的方式解决这个问题。

pngfix

pngfix是一个基于JavaScript,修复Windows Internet Explorer 5.5和6 的开源脚本程序。此修复程序允许IE浏览器正确呈现PNG Alpha透明度。

为什么只有版本Windows Internet Explorer 5.5和6?由于Windows的IE 5.5之前的版本不支持的过滤器,所以不存在 PNG problem。Windows Internet Explorer 7 开始已经完全修复了这个png不能透明的BUG。

pngfix.js脚本程序可以使用通过一次性复制和粘贴或作为包含文件。整个脚本完全被所有其他的浏览器忽略,事实上,它被视为一个HTML注释 – 归功于IE支持有条件。这个解决方案是轻,便于使用,对其他浏览器无效。

你已经使用了这个脚本吗?你可以检查最新的变化日志。请随意使用或修改此程序,当您认为合适的时候。

次脚本最后更新的时间是March 2008

PNG in Windows IE: How To Use

Method 1: Copy & Paste

对于简单的网页,直接复制(from <!–[if lt IE 7]> to <![endif]–>) 中的所有代码后,粘贴到您的网页在<head>部分,就是这样。

Method 2: (推荐) JS Include File

如果您想使用的网页代码很多,你可能更愿意使用一个JS包含文件。首先,点击下载这里的JS文件:pngfix.js ,放置到您的网页目录中,然后添加<head>段中的某处。

<script defer type="text/javascript" src="pngfix.js"></script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: