CSS中RGB颜色值使用十六进制超过十进制是否有充分的理由?

时间:2009-07-23 12:28:59

标签: css colors hex rgb

自CSS1以来,

rgb(255,255,255)符号已经可用。但#ffffff似乎更受欢迎。

显然它稍微紧凑一点。我知道hex与底层字节关系更密切,并且理解在对这些值进行算术时会有优势,但这不是你要用CSS做的事情。

颜色值往往是由设计师(比如我自己)发起的,他们在其他任何地方都不会遇到十六进制表示法,并且更熟悉十进制表示法,这是在他们使用的应用程序中指定颜色的主要方式 - 在事实上,我遇到了很多人没有意识到给定的十六进制值如何分解为RGB组件并假设它根本不与颜色直接相关,如Pantone颜色系统参考(例如PMS432)。

那么,有什么理由不使用小数?

13 个答案:

答案 0 :(得分:32)

十六进制值更容易从您喜欢的图像编辑器中复制和粘贴。

使用Javascript更容易操作RGB值。

(我最喜欢的Hex颜色值为#EDEDED,我们为参与赛车运动的客户制作的网站背景颜色为#F1F1F1: - )

答案 1 :(得分:19)

值得注意的是,如果要输入RGBA值,则不支持十六进制表示法;也就是说,你不能用#FFFFFFff伪造它。事实上,alpha值必须是介于0.0和1.0之间的数字。 (查看this page以获取浏览器支持 - 一如既往,IE在此处领先。;))

HSL和HSLA颜色支持 - 非常设计师友好 - 也提供与RGB()样式类似的语法。如果设计人员在同一样式表中使用这两种类型的颜色值,他们可能会选择十进制值而非十六进制代码以保持一致性。

答案 2 :(得分:8)

我认为这就是你习惯的。如果您已经习惯了HTML,那么您可能会使用HEX,因为它只是在HTML中使用了很多。如果您来自设计背景,使用Photoshop / Corel / PaintShopPro等,那么您可能习惯使用RGB符号 - 尽管如今,很多程序也包含了HEX值字段。

如上所述,RGBA可能是采用RGB符号 - 一致性的原因。

虽然,我认为这也取决于场景。如果您对两者都感到满意,则可以在它们之间切换:#fffrgb(255,255,255)更容易输入。

另一个问题是为什么人们会说#fff而不是White(假设大多数浏览器都支持此关键字)。

这都是偏好和易读性的问题 - 如果你要维护一个巨大的CSS文件,能够查看颜色值并知道它是什么颜色,这是一个非常好的优势。更有利的是使用诸如LESSSass之类的东西来为CSS添加一种可编程性 - 例如允许常量。所以不要说:

#title { color: #abcdef; }

您可以使用LESS执行以下操作:

@base-color: #abcdef;

#title { color: @base-color; }

维护CSS不再是一个问题。

如果您担心浏览器的性能会导致其结果,那么这也可能是您选择的另一个因素。

总而言之,它归结为:

  • 熟悉
  • 偏好
  • 可维护性
  • 性能

答案 3 :(得分:6)

传统上,HTML总是使用十六进制颜色,因此已经转移到了CSS中。想想<font color="#ffffff">

答案 4 :(得分:6)

正如你所提到的,主要原因可能是紧凑性。 #ffffff甚至可以进一步缩短为#fff速记符号。

另一个可能的原因是,通过保存浏览器转换rgb表示法的麻烦,可以感觉到性能提升。

答案 5 :(得分:6)

我总是使用十六进制,但今天我更喜欢将我的值设置为:

rgb(82, 110, 188)

在我的css文件中,所以每当我想添加不透明度时,我只需要将rgb重命名为rgba并添加不透明度值。优点是我不必在添加不透明度之前将十六进制值转换为rgb:

rgba(82, 110, 188, 0.5)

答案 6 :(得分:4)

各种事物都会接受单个十六进制值,它们可能有不同的方式输入三个十进制值。还有一个事实是总是 6个字符(或3个,不可否认 - 再加上#),这样可以更容易地扫描它们的列表。

只需添加几个随意的想法...

答案 7 :(得分:4)

CSS是由软件开发人员而非设计师发明的。软件开发人员生活和呼吸十六进制。从我的旧C64时代开始,我仍然可以不假思索地阅读大多数十六进制数字。 A9,有人吗?

答案 8 :(得分:2)

当浏览器解释颜色时,可能会有一点速度。否则,设计背景的某些人可能知道在编写代码时如何从RGB组件中组合颜色,而编程背景中的其他人可能更倾向于使用HEX值。

答案 9 :(得分:1)

没有正当理由,除了个人偏好。

答案 10 :(得分:1)

也许我已经完成了HTML太长时间,但我发现在HEX值中更容易思考。 HTML的许多预定义调色板都巧妙地映射到HEX值。使用缩短的格式还可以为您提供自动的“网络安全”颜色,但在32位彩色显示器时代,这不是一个真正的问题。

答案 11 :(得分:1)

由于历史原因,HEX最常见。

在CSS开发中常见的CSS之前,在HTML标记中指定了颜色,指定颜色的最常用和支持的方法是使用HEX值。

答案 12 :(得分:0)

与 RGB 或 HSL 相比,我一直更喜欢 HEX,因为它更容易让我在设计时阅读。

说到动态编辑,我想使用 RGB,因为可以轻松地在不同颜色之间循环。这在做 CSS 渐变时也有一点帮助。