7

CSS3 规范仅指定:

函数符号中 HSLA 颜色值的格式是“hsla(”,后跟以度数表示的色调,以百分比表示的饱和度和亮度,以及一个 ,后跟“)”。

那么我是否理解这些值不会被解释为整数而是浮点数?例子:

hsla(200.2, 90.5%, 10.2%, .2)

这将极大地扩展 HSL 覆盖的原本较小(相对于 RGB)的颜色范围。

它似乎在 Chrome 中渲染得很好,但我不知道他们是否只是将其解析为 INT 值或什么。

4

3 回答 3

4

HSL 值在传递给系统之前会转换为十六进制 RGB 值。由设备决定将“设备色域”(可以显示的颜色范围)之外的任何生成的 RGB 值裁剪为可显示的值。RGB 值以十六进制表示。这是浏览器将 HSL 值转换为 RGB 值的指定算法。标准未指定舍入行为 - 并且有多种舍入方法,因为在 C 或 C++ 中似乎没有内置舍入函数。

HOW TO RETURN hsl.to.rgb(h, s, l): 
       SELECT: 
      l<=0.5: PUT l*(s+1) IN m2
      ELSE: PUT l+s-l*s IN m2
       PUT l*2-m2 IN m1
       PUT hue.to.rgb(m1, m2, h+1/3) IN r
       PUT hue.to.rgb(m1, m2, h    ) IN g
       PUT hue.to.rgb(m1, m2, h-1/3) IN b
       RETURN (r, g, b)

提议的建议

换句话说,您应该能够在 HSLA 中表示与在 RGB 中使用 HSLA 的小数值表示的完全相同的颜色范围。

于 2011-04-20T02:21:52.697 回答
1

AFAIK,每个浏览器都将它们转换为 INT。也许。如果我错了,无论如何您都无法区分。如果它真的很重要,为什么不直接截屏并在 Photoshop 中打开它们或使用屏幕上的色度计。这里没有人会在没有测试的情况下得到明确的答案,并且需要 2 分钟来测试......所以......

于 2011-04-19T22:34:13.437 回答
0

我不知道确切,但是只输入一些浮点数并看看它是否有效是有意义的?尝试使用小数需要两秒钟,并且没有..

于 2011-04-19T22:21:53.917 回答