HTML 颜色值

颜色名只有一百多个,而人眼能分辨的颜色远不止这些。HTML/CSS 用颜色值精确描述任意颜色:十六进制(HEX)、RGB、RGBA、HSL、HSLA,其中 HEX 与 RGB 用得最多,掌握后即可调配出约 1600 万种颜色。

十六进制 HEX

HEX 用 #RRGGBB 表示颜色:RR、GG、BB 分别是红、绿、蓝分量,取值 00~FF(十六进制)。#FF0000 红分量最大、其余为 0,所以是纯红;#000000 全 0 为黑色,#FFFFFF 全 FF 为白色。

<p style="color:#FF0000;">纯红 #FF0000</p>
<p style="color:#00FF00;">纯绿 #00FF00</p>
<p style="color:#0000FF;">纯蓝 #0000FF</p>
<p style="color:#FFFFFF;background-color:#000000;">黑底白字</p>

在浏览器中显示为:红、绿、蓝三行彩色文字,以及一行黑底白字。若两位相同可缩写,如 #FF0000 可写 #F00

RGB 与 RGBA

RGB 用 rgb(红, 绿, 蓝) 表示,三个分量取值 0~255rgb(255,0,0) 等价于 #FF0000RGBA 比 RGB 多一个 A(Alpha)透明度参数,取值 0~1,0 全透明、1 不透明,可做出半透明效果。

<p style="color:rgb(255,0,0);">rgb(255,0,0) 纯红</p>
<p style="color:rgba(255,0,0,0.5);">rgba 半透明红</p>

在浏览器中显示为:第一行纯红文字,第二行与第一行相同但明显偏淡(半透明)的红色文字。

HSL 与 HSLA

HSL 用色相、饱和度、明度描述颜色:hsl(色相, 饱和度%, 明度%)色相取值 0360,0/360 是红、120 是绿、240 是蓝;饱和度明度为百分比。HSLA 同样多一个 01 的透明度参数。

<p style="color:hsl(120,100%,50%);">hsl(120,100%,50%) 纯绿</p>
<p style="color:hsla(120,100%,50%,0.4);">40% 透明的绿</p>

在浏览器中显示为:第一行纯绿色文字,第二行为同色但明显半透明的绿色文字。

几种写法的换算关系

RGB 的三个分量转成两位十六进制即可得 HEX:分量值除以 16 的商与余数分别对应一个十六进制位,如 255 转成 FF、128 转成 80。rgb(255,0,0)#FF0000hsl(0,100%,50%) 表示的是同一种纯红,效果完全一致。

写法示例说明
颜色名red直观,数量少
HEX#FF0000紧凑,最常用
RGBrgb(255,0,0)直观控制三原色分量
RGBArgba(255,0,0,0.5)带透明度
HSLhsl(0,100%,50%)符合直觉的色相调节
HSLAhsla(0,100%,50%,0.5)色相 + 透明度

获取颜色值的工具

不必手工换算每个颜色:系统自带的取色器、浏览器的开发者工具(F12 的 Styles 面板)、各类在线取色网站,都能直接给出选中颜色的 HEX/RGB 值,复制到代码里即可使用,准确又省事。

小结

想精确控制颜色就用颜色值:HEX 的 #RRGGBB 与 RGB 的 0~255 分量一一对应,需要透明则用 RGBA/HSLA。配合取色工具,你就能调配出任何想要的颜色。

笔记加载中…