1

当我们在 Html 中使用 RGBA 时,我们会像这样使用 sth。

<div style="Background: rgba (x, x, x, 0.dd)">Some Content</div>

dd您可以在(opacity)中输入多少位小数。它依赖于浏览器吗?还是在 HTML 标准中规定了它的限制?

4

3 回答 3

4

规范说它是一个<number>定义

零个或多个数字后跟一个点 (.) 后跟一个或多个数字

所以 CSS 规范中没有规定限制。

如果任何人眼可以区分小数点后两位,我会感到惊讶。

于 2013-10-16T16:53:58.140 回答
2

该值可以是 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);
    ...
}
于 2013-10-16T18:56:03.737 回答
0

opacity 属性的值设置为两位小数。

当前所有浏览器都承认这一点,IE8 及以下版本的上下文略有不同。

于 2013-10-16T16:48:37.137 回答