CSS3 spec仅指定:
功能表示法中的HSLA颜色值的格式为'hsla('后跟色调的度数,饱和度和亮度的百分比,以及a,后跟')'。
我是否理解这些值不会被解释为整数而是浮点数?例如:
hsla(200.2, 90.5%, 10.2%, .2)
这将极大地扩展HSL所涵盖的其他小(相对于RGB)颜色范围。
它似乎在Chrome中渲染得很好,但我不知道它们是否只是将其解析为INT值或者是什么。
答案 0 :(得分: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中的小数值表示HSLA中完全相同的颜色范围。
答案 1 :(得分:1)
我不确切地知道,但是只是输入一些浮动数字并看看它是否有效是有道理的吗?尝试使用小数需要两秒钟,没有..
答案 2 :(得分:1)
AFAIK,每个浏览器都将它们转换为INT。也许。如果我错了,你无论如何都无法区分。如果它真的很重要,为什么不直接拍摄截图,在photoshop中打开它们或使用屏幕上的色度计。没有测试就没有人会有明确的答案,测试需要2分钟......所以......