0为饱和度和亮度不起作用,但hsl/hsla为0%?

Pra*_*lia 5 css hsl colors units-of-measurement

我正在尝试一个简单的演示,我给了元素颜色hsl.根据我的经验,我知道0CSS 中的(ZERO)是无单元的.如果要将0指定为值,则可以离开单位.

然而,hsl/hsla似乎并非如此.在Chrome和Firefox上,都会导致无效的属性值.

一个切线相关的问题是这个,但它包含的答案是零应该是指无规则的指标.

hsla(0,0%,0%,0)的任何错误,变成hsla(0,0,0,0)?(缺少百分号)

hsl(0,0,0)     // error
hsl(0,0%,0)    // error
hsl(0,0,0%)    // error
Run Code Online (Sandbox Code Playgroud)

它是否专门设计用于零以外的单位?有没有这样的其他属性,其中一个单位在零旁边是必须的?

Lea*_*rou 4

CSS 中的 0 <length> 是无单位的,而不是任何 0,否则不可能消除歧义(例如,在简写中)。这是<百分比>,而不是<长度>。

规格:

  • @maioman &lt;color&gt; 值有自己的微语法,它是在 css-color 规范中根据其他类型的值定义的。具体来说,在 hsl()/hsla() 中,饱和度和亮度是 &lt;percentage&gt; 值。 (2认同)
  • @PraveenPuglia 因为在 HSL 中,饱和度和亮度是(概念上)百分比。是的,在这种情况下不存在歧义问题,但是 a) 值需要以在任何地方都有效的方式定义,你不能在这里对百分比进行不同的解析,在那里进行不同的解析。b) 谁知道它将来会如何变化以及它是否会接受这些参数中的新类型? (2认同)