68

rgb(255,255,255)表示法自 CSS1 起就可用。但#ffffff似乎更受欢迎。

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

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

那么,有什么理由不使用十进制?

4

13 回答 13

37

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

使用 Javascript 更容易操作 RGB 值。

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

埃德。

于 2009-07-23T12:33:37.137 回答
23

值得注意的是,如果要输入 RGBA 值,不支持十六进制表示法;即,你不能用#FFFFFFff 伪造它。事实上,alpha 值必须是介于 0.0 和 1.0 之间的数字,包括 0.0 和 1.0。(查看此页面以获取浏览器支持——与往常一样,IE 在这里处于领先地位。;))

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

于 2009-07-23T12:57:25.520 回答
9

我想这是你习惯的。如果您习惯于 HTML,您可能会使用 HEX,因为它在 HTML 中被大量使用。如果您具有设计背景,使用 Photoshop/Corel/PaintShopPro 等,那么您可能已经习惯了 RGB 符号 - 不过,现在很多程序也包含 HEX 值字段。

如前所述,RGBA 可能是使用 RGB 表示法的一个原因 - 一致性。

不过,我认为这也取决于场景。如果您对两者都感到满意,则可以在它们之间切换:#fff输入比rgb(255,255,255).

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

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

#title { color: #abcdef; }

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

@base-color: #abcdef;

#title { color: @base-color; }

维护 CSS 变得不那么重要了。

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

所以总而言之,它归结为:

  • 熟悉度
  • 偏爱
  • 可维护性
  • 表现
于 2010-08-26T13:54:45.770 回答
8

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

另一个可能的原因是,通过省去浏览器转换rgb符号的麻烦,可以感知性能提高。

于 2009-07-23T12:40:41.460 回答
6

传统上,HTML 一直使用十六进制颜色,所以这已经延续到 CSS 中。思考<font color="#ffffff">

于 2009-07-23T12:34:30.473 回答
6

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

rgb(82, 110, 188)

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

rgba(82, 110, 188, 0.5)
于 2014-05-18T09:30:28.470 回答
5

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

于 2009-07-23T12:44:49.870 回答
4

各种事物将接受一个十六进制值,它们可能有不同的方式来输入三个十进制值。还有一个事实是它总是6 个字符(或者 3 个,诚然 - 加上 #),这使得扫描它们的列表变得更容易。

只是一些随机的想法可以添加到组合中......

于 2009-07-23T12:35:40.710 回答
2

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

于 2009-07-23T12:34:01.723 回答
2

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

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

于 2013-11-29T23:33:42.373 回答
1

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

于 2009-07-23T12:29:58.087 回答
1

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

于 2009-07-23T12:44:35.237 回答
1

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

在动态编辑方面,我喜欢使用 RGB,因为它可以轻松循环使用不同的颜色。这在做 CSS 渐变时也有一点帮助。

于 2021-04-29T16:07:06.340 回答