在CSS中使用十六进制十进制代替RGB颜色值有什么好的理由吗?
从CSS1开始, rgb(255,255,255)
表示法已可用。 但#ffffff
似乎更受欢迎。
显然它稍微更紧凑。 我知道十六进制与底层字节关系更密切,并且理解在对这些值进行算术运算时会有优势,但这不是您要用CSS做的事情。
颜色值往往是由设计者(比如我)在任何其他地方永远不会遇到十六进制符号的,并且更加熟悉十进制符号,这是在他们使用的应用程序中指定颜色的主要方式 - 事实上,我有遇到了不少人不知道某个给定的十六进制值如何分解为RGB分量,并假定它并不直接与颜色直接相关,如Pantone色彩系统参考(例如PMS432)。
那么,有什么理由不使用小数?
十六进制值更容易从您喜欢的图像编辑器复制和粘贴。
使用Javascript更容易处理RGB值。
(我最喜欢的十六进制颜色值是#EDEDED,我们为参与赛车运动的客户制作的网站的背景颜色为#F1F1F1 :-)
埃德。
值得注意的是,如果您要输入RGBA值,则不支持十六进制符号; 即,你不能用#FFFFFFff来伪造它。 事实上,alpha值必须是介于0.0和1.0之间的数字,包括0.0和1.0。 (看看这个页面的浏览器支持 - 一如既往,IE浏览器在这里是领先的;))
HSL和HSLA颜色支持 - 这是非常设计师友好 - 也提供了与RGB()风格类似的语法。 如果设计师在同一个样式表中使用两种颜色值,他们可能会选择十六进制代码的十进制值以保持一致性。
我认为这是你习惯的。 如果你习惯了HTML,那么你可能会使用HEX,因为它只是在HTML中使用了很多。 如果你是从设计背景,使用Photoshop / Corel / PaintShopPro等,那么你很可能习惯于RGB记法 - 但是,现在很多程序也包含HEX值字段。
如上所述,RGBA可能是符合RGB表示法的一个理由 - 一致性。
尽管如此,我认为这也取决于情景。 如果你对两者都很满意,你可以在它们之间切换: #fff
比rgb(255,255,255)
更容易输入。
另一个问题是为什么人们会说#fff
而不是White
(假设大多数浏览器都支持这个关键字)。
这都是一个偏好和易读性的问题 - 如果你维护一个巨大的CSS文件,能够查看颜色值并知道它是什么颜色,这是一个很好的优势。 更有利的是使用像LESS或Sass这样的东西来为CSS添加一种可编程性 - 例如允许常量。 所以不要说:
#title { color: #abcdef; }
您可以改为使用LESS进行以下操作:
@base-color: #abcdef;
#title { color: @base-color; }
维护CSS不再是一个问题。
如果您担心浏览器的性能会导致效果,那么这也可能是您选择的另一个因素。
所以总而言之,它归结为:
上一篇: Are there any good reasons for using hex over decimal for RGB colour values in CSS?