2013-10-16 132 views
0

当我们在Html中使用RGBA时,我们使用这样的东西。Html rgba颜色不透明?

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

多少小数你能在dd(不透明度)去。它依赖于浏览器吗?或者它的限制是在HTML标准中规定的?

回答

4

specification说,这是一个<number>defined as:(。)

零个或多个数字后面加一个点后面跟着一个或多个数字

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

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

0

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

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

3

该值可以是0.0到1.0之间的任何数字。

分辨率取决于色彩空间分辨率通常是8位(未来可能提供更高的分辨率,如10位和12位,虽然我怀疑这会很快发生,但,这就是为什么一小部分被用来代替字节值)。

值乘以字节的值,因此被限制,你想用什么数字和最终值四舍五入到最接近的整数值:

Internal byte value = round(alpha * 255); 

(或1/256 = 0.00390625增量)

为您提供最终字节值和视觉外观的实际更改(假设背景为纯色)。

我在这里做了一个小脚本,它给出了在小数值中使用各种数字的小数的结果 - 正如你可以看到当你在3位小数时,这些值开始相似,因此没有那么有用。

ONLINE GENERATED TABLES HERE

Tables

的循环来生成表看起来像这样一般:

for (; i < 1; i += 0.1) { 
    num = Math.round(i * 255, 10); 
    ... 
}