【发布时间】:2013-10-16 16:45:55
【问题描述】:
当我们在 Html 中使用 RGBA 时,我们会这样使用。
<div style="Background: rgba (x, x, x, 0.dd)">Some Content</div>
dd(不透明度) 中可以输入多少位小数。它依赖于浏览器吗?还是在 HTML 标准中规定了它的限制?
【问题讨论】:
标签: html colors html5-canvas rgba
当我们在 Html 中使用 RGBA 时,我们会这样使用。
<div style="Background: rgba (x, x, x, 0.dd)">Some Content</div>
dd(不透明度) 中可以输入多少位小数。它依赖于浏览器吗?还是在 HTML 标准中规定了它的限制?
【问题讨论】:
标签: html colors html5-canvas rgba
specification 表示它是<number>,即defined as:
零个或多个数字后跟一个点 (.) 后跟一个或多个数字
因此,CSS 规范中没有指定限制。
如果任何人眼都可以区分小数点后两位,我会感到惊讶。
【讨论】:
该值可以是 0.0 到 1.0 之间的任何数字。
分辨率取决于通常为 8 位的色彩空间分辨率(未来可能提供更高的分辨率,例如 10 位和 12 位,尽管我怀疑这会很快发生,但那这就是为什么使用分数而不是字节值的原因)。
该值乘以字节值,因此限制了您要使用的数字,最终值四舍五入为最接近的整数值:
Internal byte value = round(alpha * 255);
(或1 / 256 = 0.00390625的增量)
为您提供最终字节值和视觉外观的实际变化(假设为纯色背景)。
我在这里制作了一个小脚本,它为您提供了在分数值中使用各种小数位数的结果 - 正如您所看到的,当您使用 3 位小数时,这些值开始相似,因此没那么有用。
生成表格的循环通常如下所示:
for (; i < 1; i += 0.1) {
num = Math.round(i * 255, 10);
...
}
【讨论】:
opacity 属性的值设置为两位小数。
当前所有浏览器都承认这一点,IE8 及以下版本的上下文略有不同。
【讨论】: