IE CSS Bug系列:PNG图像与背景颜色错配

伯乐在线导读:IE 浏览器不支持很多 CSS 属性是出了名的,即便在支持的部分中,也是有很多 Bug 的。Zoffix Znet 整理了 IE 中的 CSS 问题,有简单的问题示例,也有解决方法。 这个系列共有 58 个指南,70 个解决方案。这篇由伯乐在线前端开发小组的 @rubyisapm 翻译。(欢迎更多前端开发朋友来加入“前端开发小组。)

【提示】:IE CSS BUG 系列译文正在进行中,后续或有改动和调整,请不要转载本系列的译文。

—————————————————————————–

影响版本

bug出现在:IE8,IE7,IE6

表现

即使使用同样的颜色代码,CSS里指定的颜色会与PNG图像里使用的颜色不同。

教程日期

2009.08.09 07:07:46 星期日

描述

你制作了一个Logo或某些高端洋气的艺术图并将其保存为PNG图片。然后你把它作为背景(或者一个正常图像)并用与此图片中一样的颜色将其包围起来。但很可惜的是,它们在IE中显示出完全不同的色调(有人说这也会出现在Mac系统中的safari浏览器,我没Mac没法测试),让我们来看看:

演示

由于该bug的天然特性,这个演示在一个单独的页面

 

HTML Code

CSS Code

这个“bug”有意思的地方是,它并不是个真正的bug:),这是一个特性!更有意思的是,我发现人们开始在找“网站安全色”,要是颜色不对,就觉得他们自己用“错”了颜色。不管怎样,空谈已经太多了,让我们来解决掉这个破事儿:

 

解决方案

以下是针对上面所说的bug的解决方案,按照解决方案的类型排列

方案(伪bug)

解决日期

2009.08.09 07:22:32 星期日

修复版本

所有受影响的版本

描述

当我说它是一个功能而不是bug的时候,我的意思是:IE浏览器是支持“PNG咖玛轮廓”的。我找到过一个页面似乎也在讨论这个问题: The Sad Story of PNG Gamma “Correction” by Henri Sivonen。对于这个bug,我们的解决方案是简单地从PNG图片里删除咖玛轮廓,来看看修复后的演示:

由于bug的天然特性,演示展示在单独的页面上查看。

 

HTML Code:

CSS Code:

我们的代码保持不变。我所做的是用pngcrush程序(注1)来修复图片。在这里我要指出的是,你可以从一开始就设置你的编辑器使其不保存咖玛轮廓。看起来会在默认情况下调皮地保存这些轮廓的编辑器只有Photoshop;因为我是一个开心的Gimp用户,我自己的PNG图片没有这样的问题,但这也意味着我并不能教你如何去配置photoshop不去保存这些轮廓。

不管怎样,pngcush也会减少图片的大小,所以为什么不试一下呢。我用来修复演示图片的命令是这样的:pngcrush -brute_force -rem gAMA -rem cHRM -rem sRGB -rem iCCP pngcrush.png pngcrush_fixed.png。其中的参数解释已经超出了本教程的范畴 –还是去读那些操蛋的手册吧。

在Ubuntu系统中,pngcrush可以从Universe repos库里获取: sudo apt-get install pngcrush

1pngcrush 是一个用来批量压缩 PNG 格式图片的工具

收藏 评论

关于作者:rubyisapm

前端程序媛…(新浪微博:@rubyisapm) 个人主页 · 我的文章

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部