css 常用的颜色模型 是RGB,人们生活中还有一些其他的颜色模型,下面就介绍分别一下:RGB、CMYK、HSL。
RGB
最常见的颜色表示法,它符合光谱三原色理论:红、绿、蓝三种颜色的光可以构成所有的颜色。
- 为什么是这三种颜色,人类的视觉神经分别有对这三种颜色敏感的类型。
- 现代计算机中多用 0-255 的数字表示每一种颜色, 正好是一个字节,RGB 表示法,就是每个颜色占据三个字节
- 黑色:0 0 0 (没有光) 白色:255 255 255 (三种颜色混合就是白光)
RGB一般称为【色光三原色】,R(red)红、G(green)绿、B(blue)蓝,RGB的颜色阶调为0-255,由于RGB是色光,所以在颜色的叠加是越加越亮,所以又称为【加色法】。
维基百科:zh.wikipedia.org/wiki/三原色光模式
RGB 的应用
- css 颜色
- 在电子系统中检测,表示和显示图像,比如电视和电脑
CMYK
如果你上过小学的美术课,应该听过“红黄蓝”三原色的说法,这好像和我们说的不太一样,实际上是这样的,颜料显示的颜色的原理是它吸收了所有别的颜色的光,只反射一种颜色,所以颜料三颜色其实是红黄蓝的补色,品红、黄、青。
CMY是3种印刷油墨名称的首字母:青色Cyan、品红色Magenta、黄色Yellow。而K取的是black最后一个字母,为了避免与蓝色混淆而用K。
从理论上讲,只需要CMY三种油墨就足够,把CMY加在一起就应该得到黑色。由于其他三种颜料比较贵。因此,为了确保黑色的输出,还需要一种单独的黑墨。
HSL
大家已经知道了RGB 颜色模型,即任何一种颜色,都是由红(Red)、绿(Green)、蓝(Blue)三原色以不同的比例相加而成的。
但是,RGB 模型对人类而言其实并不直观,比如我说一种颜色是由 60% 红, 30% 绿和 90% 蓝组成的,你应该很难想象出来,这到底是哪种颜色?
因此人们设计出了 HSL 色彩空间,来更加直观的表达颜色。HSL是色相(Hue)、饱和度(Saturation)和亮度(Lightness)这三个颜色属性的简称。
色相
色相(Hue)是色彩的基本属性,就是人们平常所说的颜色名称,如紫色、青色、品红等等。我们可以在一个圆环上表示出所有的色相。
色环上的 0°、120°、240° 位置,分别对应了 RGB 模型的红、绿、蓝三原色。
原色两两混合形成了二次色。比如黄色(60°)就是由红色和绿色混合而成;蓝色和绿色则相加形成青色(180°);品红(300°)则由红蓝两色组成。
原色和二次色之间,还有各种丰富的色相过渡,比如 270° 的紫色介于品红和蓝色之间。30° 的橙色则是由红色黄色混合而成。
饱和度
饱和度(Saturation)是指色彩的纯度,饱和度越高色彩越纯越浓,饱和度越低则色彩变灰变淡。
亮度
亮度(Lightness)指的是色彩的明暗程度,亮度值越高,色彩越白,亮度越低,色彩越黑。
HSL 柱形图
HSL 圆柱中的任意一个点,都对应了一种颜色。圆环上的度数代表了颜色的色相,离中轴的距离代表了颜色的饱和度,点的高度则对应了颜色的亮度。
HSL 应用
- HSL工具调色
- 在 css 中使用
hsl(hue, saturation, lightness)
hsl(120,100%,50%) /* 绿色 */
hsl(120,100%,75%) /* 浅绿 */
hsl(120,100%,25%) /* 暗绿 */
| 值 | 描述 |
|---|---|
| hue - 色相 | 定义色相 (0 到 360) - 0 (或 360) 为红色, 120 为绿色, 240 为蓝色 |
| saturation - 饱和度 | 定义饱和度; 0% 为灰色, 100% 全色 |
| lightness - 亮度 | 定义亮度 0% 为暗, 50% 为普通, 100% 为白 |