我试图编写一些颜色操作代码并且长时间使用alpha卡住了,然后我(2小时后)意识到浏览器渲染rgba的方式不同。
我创建了这个测试:http://jsbin.com/adekez/2/ 添加/编辑以查看代码
以下是OSX Lion中4个浏览器的结果:http://imgur.com/g2iqu
这是一个背景为rgba(0,0,0,0.5)的元素,位于白色之上。
我的十六进制计算器说:FF÷2 = 7F.8,这意味着
Safari#808080是正确的 #7F7F7F的Firefox被1关闭 #7E7E7E的歌剧院开出2 位于#929292的Chrome已离线
这里发生了什么,这是Chrome中的错误还是我不了解颜色(真实)?
答案 0 :(得分:1)
嗯,实际上Safari 和 Firefox都是正确的:
0xFF = 255
,255 / 2 = 127.5
。因此128
可能是正确的(0x80
),也可能是127
(0x7F
) - 具体取决于浏览器的舍入约定。
这些是四舍五入的问题。我不太明白为什么存在舍入问题,因为0.5可以用二进制数表示而没有精度损失,但事实上有四舍五入的问题:
歌剧:
铬:
答案 1 :(得分:0)
当我检查chrome&野生动物园,但我在两者中都得到完全相同的rgba颜色#808080。让我们知道您使用的浏览器版本。