我一直在生成交互淡入淡出的透明度。
然而我认为,使用未舍入的透明度数值不是一个好主意。如果最大精度低于 JavaScript 的最大精度,浏览器似乎会将该值四舍五入,但仍然认为值已更改。
所以问题是,CSS3 opacity
的最大精度是多少才有意义?
我一直在生成交互淡入淡出的透明度。
然而我认为,使用未舍入的透明度数值不是一个好主意。如果最大精度低于 JavaScript 的最大精度,浏览器似乎会将该值四舍五入,但仍然认为值已更改。
所以问题是,CSS3 opacity
的最大精度是多少才有意义?
透明度可以使用任何数量的小数点,但问题在于HTML只能以256种不同的方式改变亮度。因此,最敏感的透明度会出现在黑色覆盖白色的情况下,其可见色调具有256种不同的变化。这是因为R、G和B之间的比率必须始终保持相同才能保持相同的颜色。
因此,由于最敏感的颜色具有256个不同的值,对可见输出产生影响的最小变化将是1/256 = 0.00390625
。理论上,这应该是增加透明度的最小步长。
经过测试,我注意到使用简单的取色器,在此示例fiddle中,底部的div是唯一一个具有任何颜色变化的。顶部的2个div的颜色为#000000
,而底部的div的颜色为#010101
。因此,基于这个,我会说:
应该注意的是,这全部在Google Chrome中进行了测试,而且像BoltClock所说的那样,这可能因实现而异。