Css 饱和度和亮度不为0';在hsl/hsla中不起作用,但0%起作用?

Css 饱和度和亮度不为0';在hsl/hsla中不起作用,但0%起作用?,css,colors,units-of-measurement,hsl,Css,Colors,Units Of Measurement,Hsl,我尝试了一个简单的演示,在那里我给hsl中的元素添加了颜色。根据我所有的经验,我知道CSS中的0(零)是无单位的。如果要将0指定为值,可以保留该单位 然而,hsl/hsla的情况似乎并非如此。在Chrome和Firefox上,它都会导致无效属性值 一个切题相关的问题是这个,但其中包含的答案是,参考规范,零应该是无单位的 它是专门为零度附近的单位设计的吗?还有其他类似的属性必须在零附近有一个单位吗?通常是定义CSS之外的颜色的概念 您可以设置的三个参数是HueSaturationLightnes

我尝试了一个简单的演示,在那里我给
hsl
中的元素添加了颜色。根据我所有的经验,我知道CSS中的
0
(零)是无单位的。如果要将0指定为值,可以保留该单位

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

一个切题相关的问题是这个,但其中包含的答案是,参考规范,零应该是无单位的

它是专门为零度附近的单位设计的吗?还有其他类似的属性必须在零附近有一个单位吗?

通常是定义CSS之外的颜色的概念

您可以设置的三个参数是HueSaturationLightness:

  • 色调想象一个色轮。设置值类似于设置角度度。
    作为HSL CSS值,它是一个无单位值;支持正片和负片(即360=-720)

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

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

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

这里有一个链接到一个好的链接,可以获取更多信息


编辑: 您假设可以设置为长度-%单位值是错误的-就像其他仅接受特定范围值的CSS属性一样
color
属性有自己的选项(
hsl
是一个);当解析器得到一个
hsl
hsla
值时,规则就是上面的规则(可能将来解析器会为您修复它,但现在它是这样工作的;)

CSS中的0是无单位的,而不是任何0,否则就无法消除歧义(例如,在速记中)。这是一个,不是一个

规格:


我不能给你一个答案,只能投赞成票。这让我在过去的一个小时里感到困惑。我很想知道为什么。我明白了,但不使用该装置的真正警告是什么?这不会使它在CSS中统一吗?另外,从一般意义上讲,0应该是无单位的,无论它在何处使用。
color
属性不接受百分比或长度作为@maioman值-饱和度和亮度表示为百分比。100%表示完全饱和,0%表示灰色阴影。根据规范-@maioman值有自己的微语法,它是根据css颜色规范中其他类型的值定义的。特别是在hsl()/hsla()中,饱和度和亮度是值。@PraveenPuglia,因为在hsl中,饱和度和亮度是(概念上)百分比。是的,在这种情况下没有消除歧义的问题,但是a)值需要以一种在任何地方都有效的方式定义,不能在这里和那里对百分比进行不同的解析。b) 谁知道它将来会发生什么变化,以及它是否会接受这些参数中的新类型?关于色调,是的,在CSS颜色级别4中,它也将是一个角度。请参阅:@maioman W3C规范因历史原因被称为“推荐”,但毫无疑问:它们与浏览器供应商的规范完全相同。如果您不了解标准流程,请不要传播错误信息。
hsl(0,0,0)     // error
hsl(0,0%,0)    // error
hsl(0,0,0%)    // error