CSS - 颜色用 RGB 还是 HEX?

48

4
可能是重复的问题:https://dev59.com/fnM_5IYBdhLWcg3w6HzT,https://dev59.com/8XI-5IYBdhLWcg3wBjZR - Zeta
十六进制输入起来可能更快,但 RGB 有更多的颜色组合。 - Ben
3
你的问题是什么意思?你说 RGB 有更多可能的组合方式是指什么?十六进制和 RGB 都是指 sRGB 颜色空间中的一个点。十六进制和 RGB 只是同一种事物的两种不同表示方法。CSS颜色规范 - Christofer Eliasson
@ChristoferEliasson 哎呀,十六进制码有更多,我算了一下,16^6= 16,777,216,而255^3 = 16,581,375。基本上,我的意思是,虽然使用十六进制码可以得到更多的组合方式,但使用 RGB 可以得到更多的颜色选择。 - Ben
6
@Ben,无论是十六进制(hex)还是RGB格式,可用颜色数目都完全相同,即16777216种。您在计算时可能忽略了0。0-255可得256个可能的数字,因此256的三次方等于16777216,这与十六进制的可用颜色数目完全相同。 - Christofer Eliasson
@ChristoferEliasson 我不好意思,对不起。 - Ben
4个回答

32

我认为使用RGB或HEX主要是个人口味问题。个人而言,我使用HEX,因为它更方便 - 在阅读代码时更容易扫描并从您喜欢的图像编辑器中更容易复制。另外,对于像白色(#fff)、黑色(#000)这样的颜色,它可以为您节省一些字节(尽管这并不会产生太大的差异)。

最终,这只是同一件事情的两种不同表示方法,从性能角度来看,我认为这并不重要。至少有很多其他事情可以做来提高性能,这将对性能产生更大的影响。


16

通常情况下,您可以直接从图形编辑器中复制十六进制值——从一个单一文本字段中。但对于RGB值,则不行:RGB值通常通过三个单独的文本字段表示。因此,对于日常使用而言,十六进制值至少更容易使用。

但是有一段时间没有办法使用带有透明度的值的十六进制表示法,因此我们被迫使用rgba()函数来表示RGB值。

CSS Color Module Level 4草案规范新增了8位十六进制符号的表示法#RRGGBBAA#RGBA,例如:#00ffaa80等同于rgba(0, 255, 170, .5)。该功能在Firefox 49+Chromium 62+和Safari 10+ (WebKit bug)中可用,但在IE和Edge中不可用。根据caniuse的数据,目前有75%的浏览器支持这种表示法,因此它可能还不能在实际应用中使用,但可以在浏览器插件中使用。


4

HEX在企业服务中非常稳定。它易于维护(预处理器和工作人员友好),并且支持许多浏览器。

但是,如果您喜欢的话,颜色名称也不错。从调色板中选择颜色很有趣,并且已经定义了许多颜色。

因此,它是一个附录。我现在在我的个人实验性网站上使用 HLSA 颜色模式。如果您对新的CSS3草案感兴趣,请查看 http://www.w3.org/TR/css3-color/ 。如果您知道自然现象的颜色规则,则非常直观。


1
如果是针对设备(如VGA)-> 使用RGBA值,否则HEX HSL和几乎任何东西都可以使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接