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相同范围的颜色。
0
到255
)映射到可能的LCD或电子枪输出级别的完整范围(例如完全不透明或关闭到完全透明或打开),在显示RGB工厂平衡和伽马校正之后(影响范围中间而非端点)?由于CSS hsl()
和rgb()
颜色没有颜色配置文件,这是否意味着颜色永远不会超出“设备色域”,而是以设备色域本身的范围显示颜色? - Slipp D. Thompson我不确定,但是只要输入一些浮点数并查看是否有效,这是有道理的吧?尝试使用小数和不使用小数只需要两秒钟。