【问题标题】:Html rgba color opacity?Html rgba颜色不透明度?
【发布时间】: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


    【解决方案1】:

    specification 表示它是&lt;number&gt;,即defined as

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

    因此,CSS 规范中没有指定限制。

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

    【讨论】:

      【解决方案2】:

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

      分辨率取决于通常为 8 位的色彩空间分辨率(未来可能提供更高的分辨率,例如 10 位和 12 位,尽管我怀疑这会很快发生,但那这就是为什么使用分数而不是字节值的原因)。

      该值乘以字节值,因此限制了您要使用的数字,最终值四舍五入为最接近的整数值:

      Internal byte value = round(alpha * 255);
      

      (或1 / 256 = 0.00390625的增量)

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

      我在这里制作了一个小脚本,它为您提供了在分数值中使用各种小数位数的结果 - 正如您所看到的,当您使用 3 位小数时,这些值开始相似,因此没那么有用。

      ONLINE GENERATED TABLES HERE

      生成表格的循环通常如下所示:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-12-02
          • 2020-07-14
          • 2014-08-11
          • 1970-01-01
          • 2011-10-06
          • 2016-04-24
          • 1970-01-01
          • 2013-10-01
          • 1970-01-01
          相关资源
          最近更新 更多