我正在尝试一个简单的演示,我为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
它是否专门设计用于零以外的单位?有没有像这样的其他属性,其中有一个单位在零旁边是必须的吗?
答案 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
是一个);当解析器达到hsl
或hsla
值时,规则就是上面的规则(可能在将来解析器会为你修复它,但现在这就是它的工作原理;)
答案 2 :(得分:0)
我不知道为什么0%与0有任何不同。这并不能解释为什么0在某些情况下与0不同,而在其他情况下则不然。