CSS3 规范仅指定:
函数符号中 HSLA 颜色值的格式是“hsla(”,后跟以度数表示的色调,以百分比表示的饱和度和亮度,以及一个 ,后跟“)”。
那么我是否理解这些值不会被解释为整数而是浮点数?例子:
hsla(200.2, 90.5%, 10.2%, .2)
这将极大地扩展 HSL 覆盖的原本较小(相对于 RGB)的颜色范围。
它似乎在 Chrome 中渲染得很好,但我不知道他们是否只是将其解析为 INT 值或什么。
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 的小数值表示的完全相同的颜色范围。
AFAIK,每个浏览器都将它们转换为 INT。也许。如果我错了,无论如何您都无法区分。如果它真的很重要,为什么不直接截屏并在 Photoshop 中打开它们或使用屏幕上的色度计。这里没有人会在没有测试的情况下得到明确的答案,并且需要 2 分钟来测试......所以......
我不知道确切,但是只输入一些浮点数并看看它是否有效是有意义的?尝试使用小数需要两秒钟,并且没有..