在CSS中,HSL值可以浮动吗?

时间:2011-04-19 21:58:19

标签: css css3 hsl

CSS3 spec仅指定:

  

功能表示法中的HSLA颜色值的格式为'hsla('后跟色调的度数,饱和度和亮度的百分比,以及a,后跟')'。

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

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

这将极大地扩展HSL所涵盖的其他小(相对于RGB)颜色范围。

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

3 个答案:

答案 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)

来自the proposed recommendation

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

AFAIK,每个浏览器都将它们转换为INT。也许。如果我错了,你无论如何都无法区分。如果它真的很重要,为什么不直接拍摄截图,在photoshop中打开它们或使用屏幕上的色度计。没有测试就没有人会有明确的答案,测试需要2分钟......所以......