有没有什么好的理由使用hex十进制的RGB颜色值在CSS中?
自CSS1以来, rgb(255,255,255)
表示法已可用。 但#ffffff
似乎更受欢迎。
显然它更紧凑。 我知道hex与底层字节关系更密切,并且明白在执行这些值的算术运算方面会有优势,但这不是您要用CSS做的事情。
颜色值往往是由devise师(比如我)在任何其他地方永远不会遇到hex符号,并更熟悉十进制符号,这是在他们使用的应用程序中指定颜色的主要方式 – 事实上,我有遇到不less人谁也不知道一个给定的hex值如何分解成RGB分量,并假设它并不直接与颜色直接相关,如Pantone色彩系统参考(如PMS432)。
那么,有什么理由不使用小数?
hex值更容易从您喜欢的图像编辑器复制和粘贴。
使用Javascript更容易处理RGB值。
(我最喜欢的hex颜色值是#EDEDED,我们为一个参与赛车运动的客户做了一个网站,其背景颜色为#F1F1F1 🙂
埃德。
值得注意的是,如果你想input一个RGBA值,hex符号不被支持; 即,你不能用#FFFFFFff来伪造它。 事实上,alpha值必须是介于0.0和1.0之间的数字。 (看看这个页面的浏览器支持 – 一如既往,IE浏览器在这里是领先的;))
HSL和HSLA颜色支持 – 这是非常devise师友好 – 也提供了类似的语法RGB()风格。 如果devise师在同一个样式表中使用这两种颜色值,他们可能会selecthex代码的十进制值来保持一致性。
我认为这是你习惯的。 如果您习惯了HTML,那么您可能会使用HEX,因为它只是在HTML中使用了很多。 如果你是从devise背景,使用Photoshop / Corel / PaintShopPro等,那么你很可能习惯于RGB表示法 – 尽pipe如此,现在很多程序也包含HEX值字段。
如前所述,RGBA可能是使用RGB表示法的一个理由 – 一致性。
虽然,我认为这也取决于情况。 如果你对两者都适应,你可以在它们之间切换: #fff
比rgb(255,255,255)
更容易input。
另一个问题是为什么人们会说#fff
而不是White
(假设大多数浏览器都支持这个关键字)。
这都是一个偏好和易读性的问题 – 如果你保持一个巨大的CSS文件,能够看到颜色值,并知道它是什么颜色,是一个非常好的优势。 更有利的是使用像LESS或Sass这样的东西来为CSS添加一种可编程性 – 例如允许常量。 所以不要说:
#title { color: #abcdef; }
你可以用LESS做下面的事情:
@base-color: #abcdef; #title { color: @base-color; }
维护CSS不再成为问题。
如果你担心浏览器渲染效果,那么这也可能是你select的另一个因素。
所以总之,归结为:
- 熟悉
- 偏爱
- 可维护性
- 性能
传统上HTML一直使用hex颜色,所以已经结转到CSS中。 认为<font color="#ffffff">
主要原因可能是紧凑,正如你所提到的。 #ffffff
甚至可以进一步缩短为#fff
简写符号。
另一个可能的原因是,通过保存浏览器转换rgb
表示法的麻烦,可以提高性能。
CSS是由软件开发人员,而不是devise师发明的。 软件开发人员生活和呼吸hex。 从我以前的C64时代起,我仍然可以不经过思考就读取大部分hex数字。 A9,有人吗?
各种东西将接受一个单一的hex值,他们可能有不同的方式input三个十进制值。 还有一个事实是,它总是 6个字符(或3,诚然,加上#),这使得它更容易扫描一个列表。
只是一些随机的想法添加到混合…
我总是使用hex,但今天我更喜欢将我的值设置为:
rgb(82, 110, 188)
在我的CSS文件,所以每当我想添加不透明度,我只需要将rgb重命名为rgba,并添加不透明度的值。 好处是,我不需要将hex值转换为rgb,然后才能添加不透明度:
rgba(82, 110, 188, 0.5)
当浏览器解释颜色时,速度可能会很快。 否则一些来自devise背景的人在编写代码时可能知道如何从RGB组件中编写颜色,而另一些编程背景的人可能更倾向于使用HEX值。
没有任何理由,除个人喜好外。
也许我已经做了太长的HTML,但我觉得在HEX值思考更容易。 很多预定义的HTML调色板整齐地映射到HEX值。 使用缩短的格式也给你自动'networking安全'的颜色,但这在32位彩色显示器的时代并不是真正的问题。
由于历史原因,HEX是最常见的。
在Web开发中CSS常见之前,颜色是在HTML标签中指定的,指定颜色的最常用和支持的方式是使用HEX值。