关于CSS渲染:CSS是如何绘制颜色的
<p><strong>颜色的原理</strong></p><p>最常见的颜色相关的属性就是 color 和 background-color。</p>
<p>颜色值:RGB 颜色,CMYK 颜色,HSL 颜色,其它颜色</p>
<p><strong>RGB 颜色</strong>:它符合光谱三原色理论:红、绿、蓝三种颜色的光可以构成所有的颜色。</p>
<p>现代计算机中多用 0 - 255 的数字表示每一种颜色,这正好占据了一个字节,每一个颜色就占据三个字节。</p>
<p><strong>CMYK 颜色</strong>:在印刷行业,使用的就是这样的三原色(品红、黄、青)来调配油墨,这种颜色的表示法叫做 CMYK,它用一个四元组来表示颜色。</p>
<p><strong>HSL 颜色:</strong>HSL 这样的颜色模型被设计出来了,它用一个值来表示人类认知中的颜色,我们用专业的术语叫做色相(H)。加上颜色的纯度(S)和明度(L),就构成了一种颜色的表示。</p>
<p><strong>其它颜色</strong>:RGBA 是代表 Red(红色)、Green(绿色)、Blue(蓝色)和 Alpha 的色彩空间。RGBA 颜色被用来表示带透明度的颜色,实际上,Alpha 通道类似一种颜色值的保留字。在 CSS 中,Alpha 通道被用于透明度,所以我们的颜色表示被称作 RGBA,而不是 RGBO(Opacity)</p>
<p>CSS 还规定了名称型的颜色,它内置了大量(140 种)的颜色名称。</p>
<p><strong>渐变:</strong>在 CSS 中,background-image这样的属性,可以设为渐变。CSS 中支持两种渐变,一种是线性渐变,一种是放射性渐变。</p>
<p>线性渐变的写法是:</p>
<div class="jb51code"><pre class="brush:js;">linear-gradient(direction, color-stop1, color-stop2, ...);</pre></div>
<p> direction 可以是方向</p>
<ul><li>to bottom</li><li>to top</li><li>to left</li><li>to right</li><li>to bottom left</li><li>to bottom right</li><li>to top left</li><li>to top right</li><li>120deg</li><li>3.14rad</li></ul>
<p> color-stop 是一个颜色和一个区段</p>
<ul><li>rgba(255,0,0,0)</li><li>orange</li><li>yellow 10%</li><li>green 20%</li><li>lime 28px</li></ul>
<p>放射性渐变需要一个中心点和若干个颜色:</p>
<div class="jb51code"><pre class="brush:js;">radial-gradient(shape size at position, start-color, ..., last-color);</pre></div>
<p> <strong>形状:</strong></p>
<p>CSS 中的很多属性还会产生形状,比如我们常见的属性:</p>
<ul><li>border</li><li>box-shadow</li><li>border-radius</li></ul>
<p>这些产生形状的属性非常有趣,我们也能看到很多利用它们来产生的 CSS 黑魔法。然而,这里我有一个相反的建议,我们仅仅把它们用于基本的用途,把 border 用于边框、把阴影用于阴影,把圆角用于圆角,所有其它的场景,都有一个更好的替代品:datauri+svg</p>
頁:
[1]