为什么 <输入类型= "color" > value 属性只接受十六进制颜色?



我昨天写了这段代码,我注意到输入类型color value属性值不能直接使用颜色名称。但工作与十六进制值。为什么?

<! --- Not Working--->
<input type="color" value="red">
<! --- Working --->
<input type="color" value="#ff0000">

因为规范要求。

value属性,如果指定且不为空,必须有一个有效的简单颜色值。

如果字符串长度恰好为7个字符,并且第一个字符是U+0023 NUMBER SIGN字符(#),其余6个字符都是ASCII十六进制数字,其中前两位数字表示红色部分,中间两位数字表示绿色部分,最后两位数字表示蓝色部分,则为有效的简单颜色,以十六进制表示。

<input type="color" value="red"> //Incorrect format value="red"
<input type="color" value="#ff0000"> //Correct format value="#ff0000"

必须为7位十六进制,即"#">字符后面的两个数字分别代表红、绿、蓝,如下所示:#rrggbb. 如果您有任何其他格式的颜色(例如CSS颜色名称或CSS颜色函数,如rgb()或rgba())),您必须在设置值之前将它们转换为十六进制。

最新更新