一个页面,用的css的background-url显示图片,图片最开始是png格式,用chrome和ie9显示正常,ie8的颜色老是不对,如果把png保存为24位色bmp就没问题,但是用mspaint把这个24位bmp再保存为png还是不行。后来怀疑还是png格式跟ie8不兼容,用其它图片编辑工具重新保存png,ie8下面可以正常显示了。
这里是stackoverflow关于ie8和png的问题说明
http://stackoverflow.com/questions/1251416/png-transparency-pr%D0%BEbl%D0%B5m-in-ie8
http://stackoverflow.com/questions/662616/background-colour-of-a-png-in-ie8
手边工具不多,以后验证,不知道是不是因为png图片保存gamma信息了,IE和MSPAINT可能都支持了gamma,但是别的浏览器和工具不支持gamma,所以,导致IE看上去不正常。
下了个TweakPNG工具看了一下,原图png是没有gamma信息的,但是用了MSPAINT截图保存,多了一个gamma信息块,用其它工具保存就没有了。
有gamma块的png,IE8显示的时候自动校正...
IE8想多了...
--------------------------------------------------
补充一个连接,关于IE8,PNG介绍的比较清楚
http://salman-w.blogspot.hk/2011/03/png-color-problem-in-ie.html
Inconsistent gamma support — IE8 and earlier display PNG images with gamma information differently from HTML/CSS colors, unlabelled images and PNG images with sRGB information. In simple words, at times it will render the image darker than expected.