IE CSS Bug系列:PNG圖像與背景顏色錯配
影響版本
該bug出現(xiàn)在:IE8,IE7,IE6
表現(xiàn)
即使使用同樣的顏色代碼,CSS里指定的顏色會與PNG圖像里使用的顏色不同。
教程日期
2009.08.09 07:07:46 星期日
描述
你制作了一個Logo或某些高端洋氣的藝術圖并將其保存為PNG圖片。然后你把它作為背景(或者一個正常圖像)并用與此圖片中一樣的顏色將其包圍起來。但很可惜的是,它們在IE中顯示出完全不同的色調(diào)(有人說這也會出現(xiàn)在Mac系統(tǒng)中的safari瀏覽器,我沒Mac沒法測試),讓我們來看看:
演示
由于該bug的天然特性,這個演示在一個單獨的頁面上
HTML Code
- <div></div>
CSS Code:
- div {
- width: 500px;
- height: 500px;
- background: #74822D url(pngcrush.png) no-repeat center;
- }
這個“bug”有意思的地方是,它并不是個真正的bug:),這是一個特性!更有意思的是,我發(fā)現(xiàn)人們開始在找“網(wǎng)站安全色”,要是顏色不對,就覺得他們自己用“錯”了顏色。不管怎樣,空談已經(jīng)太多了,讓我們來解決掉這個破事兒:
解決方案
以下是針對上面所說的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:
- <div></div>
CSS Code:
- div {
- width: 500px;
- height: 500px;
- background: #74822D url(pngcrush_fixed.png) no-repeat center;
- }
我們的代碼保持不變。我所做的是用pngcrush程序(注1)來修復圖片。在這里我要指出的是,你可以從一開始就設置你的編輯器使其不保存咖瑪輪廓??雌饋頃谀J情況下調(diào)皮地保存這些輪廓的編輯器只有Photoshop;因為我是一個開心的Gimp用戶,我自己的PNG圖片沒有這樣的問題,但這也意味著我并不能教你如何去配置photoshop不去保存這些輪廓。
不管怎樣,pngcush也會減少圖片的大小,所以為什么不試一下呢。 我用來修復演示圖片的命令是這樣 的:pngcrush -brute_force -rem gAMA -rem cHRM -rem sRGB -rem iCCP pngcrush.png pngcrush_fixed.png。 其中的參數(shù)解釋已經(jīng)超出了本教程的范疇 –還是去讀那些操蛋的手冊吧。
在Ubuntu系統(tǒng)中,pngcrush可以從Universe repos庫里獲取: sudo apt-get install pngcrush
注1:pngcrush 是一個用來批量壓縮 PNG 格式圖片的工具
原文鏈接:http://haslayout.net/css/PNG-Image-and-Background-Color-Mismatch