CSS渲染:CSS是如何绘制颜色的

颜色的原理

最常见的颜色相关的属性就是 color 和 background-color。

颜色值:RGB 颜色,CMYK 颜色,HSL 颜色,其它颜色

RGB 颜色:它符合光谱三原色理论:红、绿、蓝三种颜色的光可以构成所有的颜色。

现代计算机中多用 0 - 255 的数字表示每一种颜色,这正好占据了一个字节,每一个颜色就占据三个字节。

CMYK 颜色:在印刷行业,使用的就是这样的三原色(品红、黄、青)来调配油墨,这种颜色的表示法叫做 CMYK,它用一个四元组来表示颜色。

HSL 颜色:HSL 这样的颜色模型被设计出来了,它用一个值来表示人类认知中的颜色,我们用专业的术语叫做色相(H)。加上颜色的纯度(S)和明度(L),就构成了一种颜色的表示。

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

CSS 还规定了名称型的颜色,它内置了大量(140 种)的颜色名称。

渐变:在 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);

 形状:

CSS 中的很多属性还会产生形状,比如我们常见的属性:

  • border
  • box-shadow
  • border-radius

这些产生形状的属性非常有趣,我们也能看到很多利用它们来产生的 CSS 黑魔法。然而,这里我有一个相反的建议,我们仅仅把它们用于基本的用途,把 border 用于边框、把阴影用于阴影,把圆角用于圆角,所有其它的场景,都有一个更好的替代品:datauri+svg

此文章为4月Day5学习笔记,内容来源于极客时间《重学前端》,推荐该课程。

你可能感兴趣的:(css,css3,html5)