CSS Color

805 阅读2分钟

CSS的颜色

CSS中关于颜色的常见属性有俩,color和background-color。分别表示颜色跟背景颜色。重点就研究了一下颜色值。

RGB颜色

计算机中最常见的就是RGB颜色,符合光谱三原色的原理:红、蓝、绿三种颜色的光可以构成所有颜色,红蓝绿是人与之对应敏感的视觉神经。目前一个颜色对应三个字节,用三个0-255来表示。其中,#FFFFFF是白色,即红、绿、蓝三种颜色混合的颜色。#000000是黑色。

CMYK颜色

在中学以前,在美术课上接触的三原色貌似是红黄蓝。这就涉及到颜料的颜色是它吸收了其他光以后所反射剩余的光。所以红黄蓝就是红蓝绿的补色: 品红,黄、青色。简称红黄蓝(也称为三间色)。

印刷行业用了一个四元组来匹配颜色。因为成本上,黑色价格最低,用三原色去调配黑色的价格则会高很多,所以单独又多了一个黑色。

HSL颜色

HSL即色相、饱和度、亮度(Hue, Saturation, Lightness)。 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。 明度(V),亮度(L),取0-100%。

其他的颜色表示法

RGBA 是代表 Red(红色)、Green(绿色)、Blue(蓝色)和 Alpha 的色彩空间。RGBA 颜色被用来表示带透明度的颜色,实际上,Alpha 通道类似一种颜色值的保留字。在 CSS 中,Alpha 通道被用于透明度,所以我们的颜色表示被称作 RGBA,而不是 RGBO(Opacity)。

为了方便使用,CSS 还规定了名称型的颜色,它内置了大量(147种,17种标准色和130种其他颜色)的颜色名称。想要具体看的,可以查看 W3School

渐变

在 CSS 中,background-image这样的属性,可以设为渐变。提及渐变是因为颜色在渐变中,会有非常有趣的效果。CSS 中支持两种渐变,一种是线性渐变,一种是放射性渐变。

线性渐变

线性渐变的代码:

linear-gradient(direction, color-stop1, color-stop2, ...);

这里的 direction 可以是方向,也可以是具体的角度。例如:

  • to bottom
  • to top
  • to left
  • to right
  • to bottom left
  • to bottom right
  • to top left
  • to top right
  • 120deg
  • 3.14rad

color-stop 是一个颜色和一个区段。例如:

  • rgba(255,0,0,0)
  • orange
  • yellow 10%
  • green 20%
  • lime 28px

反射性渐变

放射性渐变代码:

radial-gradient(shape size at position, start-color, ..., last-color);

放射性渐变需要一个中心点和若干个颜色。