在 CSS 中定义颜色的 4 种方法

重点摘要

  • 颜色名称的使用:CSS 提供了 145 种预定义的颜色名称,这对于初学者来说非常方便,可以快速选择颜色。然而,这些选项有限,可能无法满足更精确的设计要求。
  • 十六进制颜色码:十六进制颜色码能够提供更广泛的颜色选择和精细的自定义选项。虽然它们不如颜色名称直观,但对于需要精确控制颜色的场景非常有用。
  • RGB 和 RGBA 颜色值:RGB 允许通过数值来精细调整颜色,而 RGBA 则在此基础上增加了透明度设置。确保颜色组合易于理解和视觉舒适至关重要。

颜色是 CSS 中最常用的属性之一,它在塑造网站的视觉形象、情感氛围以及用户体验方面扮演着至关重要的角色。CSS 提供了多种定义颜色的方法,每种方法都适用于特定的设计需求和个人偏好。

虽然颜色定义的重要性容易被忽视,但您的选择会对网站的整体外观和感觉产生重大影响。 深入研究各种方法的差异,以及如何在实践中应用和组合它们,将提高您创建具有视觉吸引力的网站的能力。

1. 使用预定义的颜色名称

CSS 提供了一种通过名称来指定颜色的便捷方式,共有 145 个可用的颜色名称。这些颜色名称包括像“红色”、“绿色”和“蓝色”这样简单的颜色,也包括像“珊瑚色”或“薰衣草色”这样更具体的色调。

使用命名颜色非常简单:您只需选择一个颜色名称(例如,“红色”),然后在支持颜色值的 CSS 属性中使用它。这些属性不仅包括文本颜色和背景颜色,还包括边框颜色、轮廓颜色和文本阴影等。

当您需要快速为原型设计选择颜色,或希望代码易于阅读时,颜色名称非常方便。语法如下:

 color_property: color_name;

在这里,只需将 color_name 替换为您想要使用的特定颜色即可。例如,如果要将段落的文本颜色设置为红色,您可以编写:

 p {
    color: red;
  }

这将使您的段落显示为红色文本:

优点:颜色名称在 CSS 代码中非常易读易懂。它们对初学者友好,跨浏览器兼容性良好,并且可以方便地快速实现设计想法。

缺点:颜色名称的选择有限,可能无法提供您所需的精确色调,从而限制了设计的创造力。此外,它们可能并不总是满足严格的可访问性要求,并且在旧系统中的支持可能会有所不同。

2. 十六进制颜色码

十六进制颜色码,通常称为“十六进制码”,是在网页设计中指定颜色的最常用方法。这些代码由六个数字和字母的组合(0-9,A-F)组成,代表颜色中红色、绿色和蓝色(RGB)分量的混合。

虽然它们使用起来很简单,但理解其工作原理可能具有挑战性。您可以深入研究十六进制代码以获得更深入的了解。以下是如何在 CSS 中使用十六进制码的基本示例:

 color: #RRGGBB;

在此格式中,RR、GG 和 BB 分别代表红色、绿色和蓝色分量。每个分量的范围可以从 00(无强度)到 FF(最大强度)。例如,如果您想将网站标题的背景颜色设置为特定的蓝色阴影,您可以使用如下十六进制码:

 header {
    background-color: #336699;
  }

这将产生深蓝色:

如果三个组件中的每一个都重复相同的字符两次,您也可以使用简写形式。您可以将上面的示例写为:

 header {
    background-color: #369;
  }

优点:十六进制颜色码提供了广泛的颜色选择,允许您生成详细的和自定义的色调。它们提供对颜色选择的精确控制,使其成为复杂设计要求的理想选择。

缺点:虽然十六进制代码功能强大,但它们可能不如颜色名称直观。您可能还会遇到记住特定颜色值的挑战。幸运的是,可以使用工具来查找您遇到的颜色的十六进制代码,从而使该过程更易于管理。

3. RGB 和 RGBA 颜色值

与十六进制代码类似,这种格式允许您通过红色、绿色和蓝色分量来指定颜色。不过,这一次您可以使用更友好的整数。

RGB 颜色值

RGB 颜色值是 CSS 中定义颜色的第二种常用方法。 “RGB”代表红、绿、蓝,用 CSS 函数表示,后面带括号。在括号内,您可以为每个颜色通道分配值,范围从 0 到 255。这使您可以控制要使用的颜色中红色、绿色和蓝色的强度。

语法如下:

 rgb(red_value, green_value, blue_value);

red_valuegreen_valueblue_value 替换为其各自的数值。例如,您可以实现白色、黑色和红色,如下图所示:

当您将所有三个颜色通道(红色、绿色和蓝色)设置为最大值 255 时,每个通道的强度最高,从而创建白色:

 .white-box {
    color: rgb(255, 255, 255);
  }

当您将所有三个颜色通道设置为最小值 0 时,表示每个通道中没有颜色,从而产生黑色。

 .black-box {
    color: rgb(0, 0, 0);
  }

将红色通道设置为最大值 255,同时将其他通道保持为最小值 0,会产生红色:

 .red-box {
    color: rgb(255, 0, 0);
  }

RGBA 颜色值

RGBA 的功能与 RGB 相同,唯一的区别是包含 alpha 值。RGBA 中的“A”代表 alpha,它决定所选颜色的透明度或不透明度级别。值 0 表示完全透明,使颜色完全不可见,而值 1 表示完全不透明,使颜色完全可见。

当您想要创建具有不同透明度级别的元素(例如半透明背景或褪色文本)时,RGBA 特别有用。完整的语法是:

 color: rgba(red_value, green_value, blue_value, alpha_value);

这里,red_valuegreen_valueblue_value 表示 RGB 中的颜色通道,alpha_value 指定透明度级别。

 div {
    background-color: rgba(0, 128, 0, 0.5);
  }

在此示例中,alpha 值 0.5 为绿色分配 50% 的透明度,允许其下方的内容显示出来:

优点:RGB 和 RGBA 可让您准确控制颜色,从而更轻松地选择精确的色调并创建具有视觉吸引力的设计。它们与各种网络浏览器兼容,确保您选择的颜色看起来一致。

缺点:挑战在于确保可访问的颜色组合。注意对比度至关重要,尤其是在 RGBA 中处理透明度时。WCAG 指南可以帮助您确保您的设计易于访问。

4. HSL 和 HSLA 颜色值

HSL(色调、饱和度和亮度的缩写)是另一个定义颜色的 CSS 函数。与 RGB 非常相似,HSL 使用数值来表示颜色,但其方式有所不同。您可能熟悉设计应用程序和其他地方的 UI 组件的 HSL 值。

色调:这使用色轮上的度数表示颜色本身,范围从 0 到 360。将其想象为在圆上选择一个点,其中每个度数对应于不同的颜色。例如,红色为 0 度和 360 度,绿色为 120 度,蓝色为 240 度。

饱和度:饱和度决定颜色的鲜艳度或强度。它定义了颜色与灰色的关系,0% 表示完全灰度(去饱和),100% 表示完全饱和(充满活力且纯净)。

亮度:亮度表示颜色的亮或暗程度。它与颜色在黑色 (0%) 和白色 (100%) 之间的光谱位置有关。50% 的值代表正常颜色,低于 50% 的值会使颜色变暗,高于 50% 的值会使颜色变亮。

除了 HSL 之外,还有 HSLA,其中“A”代表“alpha”。这类似于 RGBA 中的“A”,表示透明度。

语法如下:

 color: hsl(hue_value, saturation_percentage, lightness_percentage);

使用此语法,将 hue_valuesaturation_percentagelightness_percentage 替换为每个组件所需的特定值。例如:

 div {
    background-color: hsl(120, 100%, 50%);
  }

在此示例中,使用 HSL 值将 div 元素的背景颜色设置为鲜绿色。120 代表色调(绿色),100% 表示完全饱和度,50% 将亮度设置为平衡水平。

优点:HSL 和 HSLA 通过 CSS 自定义属性提供了广泛的颜色计算方法。它们与现代浏览器高度兼容,并且可以轻松调整颜色亮度。

缺点:学习 HSL 需要了解颜色科学,例如色调和饱和度,这可能比熟悉的 RGB 颜色更具挑战性。

拥抱 CSS 颜色的力量

您可以探索更多方法,当您探索在 CSS 中定义颜色的不同格式时,请记住您有能力塑造网站的外观、情感氛围和用户体验。

您选择的颜色格式(无论是简单的颜色名称、十六进制码、RGB 还是 HSL)都会影响受众对您网站的看法。因此,尝试、学习并找到最适合您的设计目标的颜色定义方法。