我知道将3位十六进制css颜色转换为6位代码的方法是将每个十六进制数字复制一次,如下所示。
#ABC === #AABBCC
为什么它是这样工作的?为什么#ABC
不等同于#A0B0C0
?
来自W3C规范:
三位RGB表示法(#RGB)通过复制数字而不是添加零来转换为六位形式(#rrggbb)。例如,#fb0扩展为#ffbb00。这确保了白色(#ffffff)可以用短符号(#fff)指定,并消除了对显示器颜色深度的任何依赖性。
您可以在此处阅读更多信息:http://www.w3.org/TR/css3-color/
原因是能够对所有颜色进行编码(能够同时处理最高和最低颜色)。例如,如果#RGB
变成#R0G0B0
,那么#fff
就会变成#f0f0f0
,这意味着您不能对白色进行编码。相反,如果#RGB
变成#RfGfBf
,则#000
将是#0f0f0f
,排除黑色。#RGB = #RRGGBB
的系统允许#000
=#000000
(黑色)和#fff = #ffffff
(白色),从而提供全范围的均匀间隔的颜色。
阅读更多信息:
- 维基百科文章
- W3网站