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

时间:2015-10-09 09:30:12

标签: css colors units-of-measurement hsl

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

hsl / hsla 似乎不是这种情况。在Chrome和Firefox上,都会导致无效的属性值

一个与切线相关的问题就是这个问题,但其中包含的答案是零应该是指无规则的。

Any bug with hsla(0, 0%, 0%, 0), becoming hsla(0, 0, 0, 0)? (missing percent sign)

hsl(0,0,0)     // error
hsl(0,0%,0)    // error
hsl(0,0,0%)    // error

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

3 个答案:

答案 0 :(得分:2)

0 <长度> 0。在CSS中是无单位的,不是任何0,否则就不可能消除歧义(例如在短篇小说中)。这是&lt; percentage&gt;,而不是&lt; length&gt;。

规格:

答案 1 :(得分:1)

一般来说hsl是一个用于定义除CSS之外的颜色的概念;

您可以设置的三个参数 H ue S aturation L ightness:

  • Hue 想想色轮。设置值就像设置角度。
    作为HSL-CSS值,它是无单位值;积极否定(即360 == -720)。

  • 饱和度 - 0%完全变性(灰度)。 100%完全饱和(全彩色)。
    由于HSL-CSS值需要一个百分比值(您可以指定任何%值,但它的范围是0%到100%)。

  • 亮度 - 0%完全黑(黑色)。 100%完全是浅色(白色)。 50%是平均亮度。
    作为HSL-CSS值,您具有与饱和度相同的规则。

  • 可选的alpha值是0到1的值,用于定义颜色的不透明度。

此处是指向好article的链接以获取更多信息。

编辑:

您假设color property可以设置为长度%单位值是错误的 - 就像其他只接受某个值范围的CSS属性color属性有它自己的选项( hsl是一个);当解析器达到hslhsla值时,规则就是上面的规则(可能在将来解析器会为你修复它,但现在这就是它的工作原理;)

答案 2 :(得分:0)

我不知道为什么0%与0有任何不同。这并不能解释为什么0在某些情况下与0不同,而在其他情况下则不然。