当前位置: 首页 > 科技观察

CSS颜色属性设置的最佳方式是什么

时间:2023-03-15 17:27:18 科技观察

如题,在你平时的开发中,你设置CSS颜色的方式有哪些呢?作为一个前端开发者,比如你在写业务组件的时候,可能会涉及到CSS颜色属性,你更喜欢哪种设置?Editor'sLeadColor在网页中起着至关重要的作用。在CSS中,我们使用RGB、Hex和HSL等方法来定义颜色。在本文中,我讨论了在CSS中设置颜色属性的三种主要方法、它们的区别、优缺点,以及可用于在CSS中定义颜色属性的其他替代方法。例如,常用的颜色设置方式如下:十六进制:#ADD8E6;RGB:RGB(173、216、230);HSL:hsl(195,53.3%,79%);很好奇,随便打开一个颜色转换网站:颜色转换从我们最常见的十六进制色值到Hex、RGB、HSL、HSV,再到CMYK等方法,你比较熟悉哪几种?当然,我最熟悉的编辑器是十六进制。想到实习的时候,剪图的时候,用的最多的就是这种颜色表现。本着探索的原则,我们将选取几种常见的颜色表示,看看它们的不同之处。HEXvsRGBvsHSLHEX十六进制颜色值是设置CSS颜色属性最流行的方法之一,尤其是在开发人员中。几乎所有的浏览器都支持它。我们可以用十六进制颜色代码定义紫色,如下所示:#800080这里的颜色以#RRGGBB格式指定,其中RR(红色)、GG(绿色)和BB(蓝色)介于00和FF之间一个十六进制整数,表示强度颜色。RGBRGB或红/绿/蓝是在CSS中定义颜色属性的另一种流行方式。RGB配色方案是一种三通道格式,包含红色、绿色和蓝色的数量,它们是0到255之间的整数。这是RGB颜色的示例:rgb(128,0,128)这是RGB代码对于我们使用上面的十六进制颜色代码指定的相同颜色。它们的效果是一样的。十六进制颜色代码有时更容易记忆和输入,那么为什么要使用RGB表示法呢?可能有一个原因:RGB的美妙之处在于它允许您为颜色添加不透明度。这就是RGBA发挥作用的地方。在CSS3中,一个额外的通道被添加到RGB配色方案中,称为alpha以指示颜色的不透明度。HSL代表色调饱和度和亮度,是另一种在CSS中声明颜色的方式。一个紫色的HSL颜色值可以指定如下:hsl(300,100%,25.1%)可以看到,第一个参数是用来定义Hue的,它是实际纯色的值,比如红、黄、绿色、蓝色、品红色等,如色轮所示。值以度为单位,从0到360。这里0和360度代表红色,120度代表绿色,240度代表蓝色。与RGB不同,在HSL中,颜色的饱和度和亮度都可以更改。这些颜色可以是暗淡的或鲜艳的。颜色越少,灰色阴影就越多。饱和度是混合物中存在多少颜色,它控制颜色的鲜艳程度或暗淡程度。例如,我们来看看下面这个网站的效果:Demo1可以看到,当Saturation值沿直线从100%变为0%时,颜色由纯变暗。另外,第三个参数Lightness也是一个百分比值,从0%到100%,描述了颜色中有多少黑色或白色。Demo2这类似于水彩在绘画中的使用。想要颜色亮一点可以加白色,想要颜色深一点可以加黑色。因此,100%亮度表示完美的白色,50%表示实际色调,0%表示纯黑色。与RGBA类似,HSLA是HSL的扩展,它实现了称为alpha的第四个通道来表示颜色的不透明度。不透明度指定为十进制值,如在RGBA中,其中1表示完全不透明,0表示完全透明,介于两者之间的所有内容都是部分不透明的。然而,虽然大多数浏览器都支持RGB和Hex颜色代码,但HSL颜色主要在基于HTML5的浏览器中得到支持。其他方法除了上述方法外,还有一些其他方法可用于在CSS中设置颜色属性。使用颜色名称:所有现代浏览器都支持140种标准CSS颜色名称。颜色名称是代表特定颜色的关键字,例如珊瑚。currentcolor关键字:如果需要引用某个元素的颜色,可以使用这个关键字。HWB值:HWB代表色相、白度、黑度。虽然目前HTML不支持它,但它被提议作为CSS4的新标准。CMYK值:CMYK是青色、品红色、黄色和黑色的组合。计算机屏幕使用RGB值显示颜色,而打印机通常使用CMYK颜色值显示颜色。与HWB类似,CMYK在HTML中尚不支持,但在CSS4中作为新标准提出。你如何选择在CSS中指定颜色的最佳方式?你用的是哪种方式?如果您习惯了HTML,您可能更喜欢使用十六进制颜色值,因为它在HTML中被大量使用。但是,如果您有设计背景,您可能会使用RGB表示法,因为它是大多数设计软件(如Photoshop、Corel和Illustrator)中最常用的格式。然而,如果你是一个纯粹的开发者,只想完成你的项目,你如何让自己高效地切图呢?一定要使用你最熟悉的颜色符号,因为浏览器并不真正关心你使用什么颜色。无论是哪种颜色格式,即使不同方法之间存在细微的性能差异,性能差异也可以忽略不计。除了其他因素,如果您担心可用性、决策对开发人员的影响等,让我们看看哪种方法最适合您的情况。让我们从十六进制表示法开始:十六进制以其简短的表示法而极具吸引力。许多开发人员发现,与RGB和HSL相比,十六进制值非常易于阅读,也更容易复制到他们喜欢的文本编辑器中。然而,十六进制可能并不适合所有情况。特别是当您需要更改颜色的不透明度级别时,您可能不得不考虑其他两种方法之一。它们各有优缺点:在设置颜色动画时,RGB和HSL比Hex更可取,而当您想操纵颜色的不透明度时,它们的alpha值附加通道会派上用场。除此之外,RGB在旧版本的InternetExplorer(9及更早版本)中广为人知并受支持。HSL有什么特点:可能它出现的原因之一就是让人看得懂。HSL是一种更新的、自发的颜色处理方法。与Hex和RGBA不同,在Hex和RGBA中你必须使用一些数字来获得你想要的颜色,在HSL中我们可以使用Hue定义颜色并使用第二个和第三个参数百分比来获得你需要的饱和度和亮度级别。如果我告诉你页面标题需要是#578557或rgb(87,133,87),你能猜出是什么颜色吗?不,除非你是一台电脑。但是,同时,如果我给你HSL中的颜色:hsl(120,21%,43%)?现在更容易猜到了吧?120°的色相值表示它是纯绿色。接下来,它的饱和度为61%,表明它与深灰色(一种饱和度非常低的绿色)相差“21度”。那么43%的亮度意味着该颜色具有从纯色到深色的“7种色调”**。在某种程度上,HSL是一种模仿现实世界的直观颜色符号。例如,让我们考虑一张淡蓝色的纸。它的三种格式的颜色值分别是:十六进制:#ADD8E6;RGB:RGB(173、216、230);HSL:hsl(195,53.3%,79%);但是当你突然需要改变颜色,比如加深颜色的时候,你应该怎么做呢?OLDVALUESNEWVALUESHex:#4f2017---------------->#2F819D;RGB:rgb(79,32,23)-------->rgb(47,129,157);HSL:hsl(195,53.3%,79%)----->hsl(195,53.3%,50%);从数据中可以看出,Hex和RGB值已经完全改变,在HSL中,只有一方面发生了变化。毫无疑问,HSL在构建配色方案时最有用。从基色开始,根据需要调整饱和度和亮度,就是这样!总结到目前为止,您可能认为HSL是最好的颜色表示。但是,旧版本的InternetExplorer不支持HSL。同样,每个颜色符号都有其优点和缺点。问题是,没关系。最重要的是尽可能保持项目中使用的类型的一致性,因为这有助于提高工作效率。虽然Hex具有不支持透明度和RGBA的局限性,但不使用特定工具调整颜色具有挑战性,而且旧版浏览器不支持HSLA;如果是,那不是特例;你可以使用任何格式。选择在项目中设置CSS颜色属性的最佳方式时,您可以考虑以下因素:通过使用与开发团队其他成员相同的格式来简化可维护性。如果您已经熟悉该格式,请使用RGB。如果您的目标访问者正在使用严重过时的浏览器查看您的网站,请使用十六进制,或者使用像这样的后备代码:p{color:#FF0000;color:hsla(0,100%,50%,1);}如果前面三点没有将您引向任何其他方向,请使用HSLA。HSLA允许您以人类可访问的方式获得类似RGBA的透明度。尽管HSLA由于其人类可读性而比其他两种方法略有优势,但如果不是针对特定情况,这并不重要。您可以使用任何您觉得舒服的方法。综观不同的优缺点,每种方法都比另一种好,总而言之,决定使用哪种方法在CSS中设置颜色属性应该取决于以下三个因素:在CSS中设置什么颜色?十六进制、RGBA、HSLA或其他?