版权 © 2022 W3C® (MIT、ERCIM、庆应、北航)。W3C 责任声明、商标 与 宽松文档许可 规则适用。
CSS(层叠样式表)是一种用于描述 HTML 与 XML 文档在屏幕、纸张、语音等介质上的渲染方式的语言。它使用与颜色相关的属性和值来为文档中的文本、背景、边框以及元素的其他部分着色。本规范描述了前景颜色和组透明度的颜色值与属性。这包括 CSS2 级别中的属性和值以及新加入的值。
本节描述了本文档在发布时的状态。当前 W3C 出版物的列表以及本技术报告的最新修订版可在 W3C 技术报告索引(https://w3org.cn/TR/)中找到。
本文档由 CSS 工作组 以 推荐稿 形式发布,采用 Recommendation 轨道。
W3C 推荐稿是一份在广泛共识基础上形成的规范,已获 W3C 与其成员的认可,并且工作组成员承诺为实现提供免版税授权。
W3C 建议将本规范广泛部署为 Web 标准。
本文档由一个遵循 W3C 专利政策 的小组制定。W3C 维护一份公开专利披露列表,列出与本小组交付物相关的任何专利披露;该页面还提供了披露专利的指导。任何对其认为包含必要专利声明的专利有实际了解的个人,必须依据W3C 专利政策第 6 节进行披露。
本文档受 2021 年 11 月 2 日 W3C 过程文档 约束。
另有一份 实现报告 显示,测试套件 中的每个测试至少被两个独立实现通过。但大多数测试现已为 CSS Color 4 更新(参见 实现报告)。
本文档的完整更改列表已提供。
本节是非规范性的。
CSS 超出第 2 级的部分由若干模块组成,划分为可增量开发的子规范,以便实现逐步演进。本规范即为其中之一。
本模块描述了允许作者指定元素前景颜色及不透明度的 CSS 属性。模块还详细阐述了 CSS 的 <color> 值类型。
它不仅定义了已存在于 CSS1 与 CSS2 中的颜色相关属性和值,还定义了全新的属性和值。
本规范是以下推荐稿与工作草案相关部分的合并结果,并加入了一些新特性。
附加术语在 定义 部分([CSS21])中给出。文档源码与代码片段示例采用 XML [XML10] 或 HTML [HTML401] 语法。
color’ 属性| 名称 | color |
|---|---|
| 值 | <color> | inherit |
| 初始值 | 取决于用户代理 |
| 应用于 | 所有元素 |
| 可继承 | 是 |
| 百分比 | 不适用 |
| 计算值 |
|
此属性描述元素文本内容的前景颜色。此外,它还可为接受颜色值的*其他*属性提供间接值(currentColorcolor’ 属性本身上设置了关键字 ‘currentColor’,则视为 ‘color: inherit’。
有多种方式可以指定青柠绿
em { color: lime } /* color keyword */
em { color: rgb(0,255,0) } /* RGB range 0-255 */
opacity’ 属性不透明度可以视为一种后期处理操作。概念上,当元素(及其子元素)渲染到离屏 RGBA 图像后,不透明度设置指定如何将该离屏渲染合成到当前复合渲染中。详情请参见简易 α 合成。
| 名称 | opacity |
|---|---|
| 值 | <alphavalue> | inherit |
| 初始值 | 1 |
| 应用于 | 所有元素 |
| 可继承 | 否 |
| 百分比 | 不适用 |
| 计算值 | 等同于在将 <alphavalue> 裁剪到 [0.0,1.0] 区间后的指定值。 |
由于不透明度小于 1 的元素是从单一离屏图像合成的,内容无法在其内部的各个片段之间按 z 顺序层叠。出于同样原因,任何不透明度小于 1 的元素必须创建新的层叠上下文。如果该元素未定位,则它与层级 0 的定位元素在同一层内绘制,属于其父层叠上下文。如果该元素已定位,则‘z-index’属性的行为如 [CSS21] 所述,只是当使用值为 ‘auto’ 时,该元素的行为等同于 ‘0’。更多关于层叠上下文的信息,请参见 第 9.9 节 与 附录 E([CSS21])。本段规则不适用于 SVG 元素,因为 SVG 有其独立的渲染模型([SVG11] 第 3 章)。
<color> 可以是关键字或数值说明。
基础颜色关键字列表为:aqua、black、blue、fuchsia、gray、green、lime、maroon、navy、olive、purple、red、silver、teal、white、yellow。这些颜色名称在ASCII 不区分大小写。
| 命名 | Numeric(数值) | 颜色名称 | 十六进制 rgb | 十进制 |
|---|---|---|---|---|
| black (黑色) | #000000 | 0,0,0 | ||
| silver (银色) | #C0C0C0 | 192,192,192 | ||
| gray (灰色) | #808080 | 128,128,128 | ||
| white (白色) | #FFFFFF | 255,255,255 | ||
| maroon (栗色) | #800000 | 128,0,0 | ||
| red (红色) | #FF0000 | 255,0,0 | ||
| purple (紫色) | #800080 | 128,0,128 | ||
| fuchsia (紫红色) | #FF00FF | 255,0,255 | ||
| green (绿色) | #008000 | 0,128,0 | ||
| lime (酸橙色) | #00FF00 | 0,255,0 | ||
| olive (橄榄色) | #808000 | 128,128,0 | ||
| yellow (黄色) | #FFFF00 | 255,255,0 | ||
| navy (海军蓝) | #000080 | 0,0,128 | ||
| blue (蓝色) | #0000FF | 0,0,255 | ||
| teal (水鸭色) | #008080 | 0,128,128 | ||
| aqua (浅绿色) | #00FFFF | 0,255,255 |
body {color: black; background: white }
h1 { color: maroon }
h2 { color: olive }
使用 RGB 颜色模型 来表示数值颜色。下面的示例均对应同一种颜色。
em { color: #f00 } /* #rgb */
em { color: #ff0000 } /* #rrggbb */
em { color: rgb(255,0,0) }
em { color: rgb(100%, 0%, 0%) }
十六进制表示法的 RGB 值以 ‘#’ 开头,紧跟三位或六位十六进制字符。三位十六进制记法(#rgb)通过复制每位而非填零转为六位形式(#rrggbb)。例如,#fb0 扩展为 #ffbb00。这样可用简写(#fff)表示白色(#ffffff),且不受显示器颜色深度限制。
功能记法的 RGB 值形式为 ‘rgb(’ 后跟逗号分隔的三个数值(整数或百分比),再以 ‘)’ 结束。整数 255 对应 100%(亦即十六进制的 F 或 FF):rgb(255,255,255) = rgb(100%,100%,100%) = #FFF。数值周围可出现空白字符。
所有 RGB 颜色均使用 sRGB 色彩空间(参见 [SRGB])。用户代理在呈现这些颜色时的精度可能不同,但使用 sRGB 可提供一个明确且客观可测的颜色定义,可对应国际标准(参见 [COLORIMETRY])。
超出设备色域的值应在已知色域时进行裁剪或映射:红、绿、蓝分量必须调整至设备支持的范围。用户代理可执行更高质量的跨色域映射。本规范未定义精确的裁剪行为。对于典型的 CRT 显示器(色域等同于 sRGB),以下四条规则等价。
em { color: rgb(255,0,0) } /* integer range 0 - 255 */
em { color: rgb(300,0,0) } /* clipped to rgb(255,0,0) */
em { color: rgb(255,-10,0) } /* clipped to rgb(255,0,0) */
em { color: rgb(110%, 0%, 0%) } /* clipped to rgb(100%,0%,0%) */
其他设备(如打印机)拥有不同于 sRGB 的色域;有些超出 0..255 sRGB 范围的颜色在设备色域内是可表示的,而有些落在 0..255 sRGB 范围内的颜色却超出设备色域,需要被映射。
在本规范中,RGB 颜色模型被扩展为包含“alpha”,以便指定颜色的不透明度。详情请参见简易 α 合成。以下示例均表示同一种颜色:
em { color: rgb(255,0,0) } /* integer range 0 - 255 */
em { color: rgba(255,0,0,1) /* the same, with explicit opacity of 1 */
em { color: rgb(100%,0%,0%) } /* float range 0.0% - 100.0% */
em { color: rgba(100%,0%,0%,1) } /* the same, with explicit opacity of 1 */
与 RGB 值不同,RGBA 值不提供十六进制记法。
功能记法的 RGBA 值形式为 ‘rgba(’ 后跟逗号分隔的三个数值(整数或百分比),随后是 <alphavalue>,最后以 ‘)’ 结束。整数 255 对应 100%,如 rgba(255,255,255,0.8) = rgba(100%,100%,100%,0.8)。数值周围可出现空白字符。
实现必须根据 RGB 颜色值的色域规则,对 RGBA 颜色值的红、绿、蓝分量进行设备色域裁剪。
下面的示例展示了 rgba() 记法能够实现的效果。
p { color: rgba(0,0,255,0.5) } /* semi-transparent solid blue */
p { color: rgba(100%, 50%, 0%, 0.1) } /* very transparent solid orange */
注意。 若用户代理不支持 RGBA 值,应按照 CSS 前向兼容解析规则([CSS21],第 4 章)将其视为未识别值。RGBA 值**不能**仅被当作忽略透明度的 RGB 值处理。
transparent’ 颜色关键字CSS1 为 background-color 属性引入了 ‘transparent’ 值。CSS2 亦允许 border-color 接受该值。Open eBook™ Publication Structure 1.0.1 [OEB101] 将 ‘color’ 属性扩展为同样接受 ‘transparent’ 关键字。CSS3 将颜色值进一步扩展为包括 ‘transparent’,从而可在所有接受 <color> 值的属性中使用,简化了这些属性在 CSS3 中的定义。
CSS3 新增了数值 色相-饱和度-亮度(HSL) 颜色,以补充数值 RGB 颜色。已观察到 RGB 颜色存在以下局限:
还有多种其他配色方案。HSL 的优势在于对亮度与暗度对称(而 HSV 则不然),且 HSL 与 RGB 的相互转换非常简单。
HSL 颜色编码为三元组(色相、饱和度、亮度)。色相以色环角度表示(即彩虹在圆形中的位置),通常以度数计量,单位在 CSS 中默认为度,语法上只写 <number>。约定 red=0=360,其余颜色均沿圆环均匀分布,如 green=120、blue=240 等。作为角度,它会自动环绕,例如 -120=240,480=120。实现可将任意角度 x 归一化到 [0,360) 区间的方式之一是计算 (((x mod 360) + 360) mod 360)。饱和度与亮度以百分比表示。100% 表示完全饱和,0% 为灰色。亮度 0% 为黑,100% 为白,50% 为“普通”。
例如:
* { color: hsl(0, 100%, 50%) } /* red */
* { color: hsl(120, 100%, 50%) } /* lime */
* { color: hsl(120, 100%, 25%) } /* dark green */
* { color: hsl(120, 100%, 75%) } /* light green */
* { color: hsl(120, 75%, 75%) } /* pastel green, and so on */
HSL 相较于 RGB 更直观:可以先猜测想要的颜色,再微调。也更易于创建一组匹配的颜色(保持相同 hue,调节亮度/暗度与饱和度)。
如果饱和度小于 0%,实现必须将其裁剪至 0%。如果结果仍超出设备色域,实现必须裁剪至设备色域。裁剪应尽可能保留色相,否则行为未定义。(换言之,此裁剪不同于在 HSL→RGB 转换后对 RGB 颜色进行的裁剪规则。)
将 HSL 颜色转换为 sRGB 的数学过程相对直接。以下是 JavaScript 实现示例,返回一个包含红、绿、蓝三个通道数值的数组,数值已归一化到 [0,1] 区间。
function hslToRgb (hue, sat, light) {
hue = hue % 360;
if (hue < 0) {
hue += 360;
}
sat /= 100;
light /= 100;
function f(n) {
let k = (n + hue/30) % 12;
let a = sat * Math.min(light, 1 - light);
return light - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
}
return [f(0), f(8), f(4)];
}
下表每列对应一种色相。我们从色环中挑选了 12 种等间距颜色(每 30°)——红、黄、绿、青、蓝、品红及其之间的过渡色(最后一列为品红与红之间的颜色)。
在每张表中,X 轴代表饱和度,Y 轴代表亮度。
| 0° 红色 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 30° 红黄(即橙色) | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 60° 黄色 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 90° 黄绿 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 120° 绿色 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 150° 绿青 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 180° 青色 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 210° 青蓝 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 240° 蓝色 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 270° 蓝品红 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 300° 品红 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
| 330° 品红红 | ||||||
|---|---|---|---|---|---|---|
| 100% | 80% | 60% | 40% | 20% | 0% | |
| 100% | ||||||
| 90% | ||||||
| 80% | ||||||
| 70% | ||||||
| 60% | ||||||
| 50% | ||||||
| 40% | ||||||
| 30% | ||||||
| 20% | ||||||
| 10% | ||||||
| 0% | ||||||
正如 ‘rgb()’ 函数拥有 ‘rgba()’ 的 alpha 形式,‘hsl()’ 函数也拥有 ‘hsla()’ 的 alpha 形式。 详细请参见简易 α 合成。以下示例均表示同一种颜色。
em { color: hsl(120, 100%, 50%) } /* green */
em { color: hsla(120, 100%, 50%, 1) } /* the same, with explicit opacity of 1 */
HSLA 颜色值的功能记法为 ‘hsla(’ 后跟度数表示的色相、以百分比表示的饱和度与亮度,以及 <alphavalue>,最后以 ‘)’ 结束。数值周围可出现空白字符。
实现必须根据 HSL 颜色值的色域规则,对 HSLA 颜色值的色相、饱和度和亮度分量进行设备色域裁剪。
以下示例展示了 hsla() 记法能实现的效果。
p { color: hsla(240, 100%, 50%, 0.5) } /* semi-transparent solid blue */
p { color: hsla(30, 100%, 50%, 0.1) } /* very transparent solid orange */
下表列出了 X11 颜色 [X11COLORS],在主流浏览器中均受支持,并加入了 SVG 1.0 的 gray/grey 变体。得到的列表与 SVG 1.0 颜色关键字名称 完全相同。本规范将其定义扩展至超出 SVG 的范围。左侧的两列示例分别展示使用命名颜色值与对应数值颜色值设置表格单元格背景的效果。
| 命名 | Numeric(数值) | 颜色名称 | 十六进制 rgb | 十进制 |
|---|---|---|---|---|
| aliceblue (艾利斯兰) | #f0f8ff | 240,248,255 | ||
| antiquewhite (古董白) | #faebd7 | 250,235,215 | ||
| aqua (浅绿色) | #00ffff | 0,255,255 | ||
| aquamarine (碧蓝色) | #7fffd4 | 127,255,212 | ||
| azure (天蓝色) | #f0ffff | 240,255,255 | ||
| beige (米色) | #f5f5dc | 245,245,220 | ||
| bisque (橘黄色) | #ffe4c4 | 255,228,196 | ||
| black (黑色) | #000000 | 0,0,0 | ||
| blanchedalmond (杏仁白) | #ffebcd | 255,235,205 | ||
| blue (蓝色) | #0000ff | 0,0,255 | ||
| blueviolet (紫罗兰色) | #8a2be2 | 138,43,226 | ||
| brown (棕色) | #a52a2a | 165,42,42 | ||
| burlywood (实木色) | #deb887 | 222,184,135 | ||
| cadetblue (军服蓝) | #5f9ea0 | 95,158,160 | ||
| chartreuse (黄绿色) | #7fff00 | 127,255,0 | ||
| chocolate (巧克力色) | #d2691e | 210,105,30 | ||
| coral (珊瑚色) | #ff7f50 | 255,127,80 | ||
| cornflowerblue (矢车菊蓝) | #6495ed | 100,149,237 | ||
| cornsilk (米绸色) | #fff8dc | 255,248,220 | ||
| crimson (绯红色) | #dc143c | 220,20,60 | ||
| cyan (青色) | #00ffff | 0,255,255 | ||
| darkblue (暗蓝色) | #00008b | 0,0,139 | ||
| darkcyan (暗青色) | #008b8b | 0,139,139 | ||
| darkgoldenrod (暗金菊黄) | #b8860b | 184,134,11 | ||
| darkgray (暗灰色) | #a9a9a9 | 169,169,169 | ||
| darkgreen (暗绿色) | #006400 | 0,100,0 | ||
| darkgrey (暗灰色) | #a9a9a9 | 169,169,169 | ||
| darkkhaki (暗黄褐色) | #bdb76b | 189,183,107 | ||
| darkmagenta (暗洋红色) | #8b008b | 139,0,139 | ||
| darkolivegreen (暗橄榄绿) | #556b2f | 85,107,47 | ||
| darkorange (深橙色) | #ff8c00 | 255,140,0 | ||
| darkorchid (暗紫色) | #9932cc | 153,50,204 | ||
| darkred (暗红色) | #8b0000 | 139,0,0 | ||
| darksalmon (暗肉色) | #e9967a | 233,150,122 | ||
| darkseagreen (暗海绿色) | #8fbc8f | 143,188,143 | ||
| darkslateblue (暗石蓝色) | #483d8b | 72,61,139 | ||
| darkslategray (暗石灰色) | #2f4f4f | 47,79,79 | ||
| darkslategrey (暗石灰色) | #2f4f4f | 47,79,79 | ||
| darkturquoise (暗青绿色) | #00ced1 | 0,206,209 | ||
| darkviolet (暗紫罗兰色) | #9400d3 | 148,0,211 | ||
| deeppink (深粉红色) | #ff1493 | 255,20,147 | ||
| deepskyblue (深天蓝色) | #00bfff | 0,191,255 | ||
| dimgray (昏灰色) | #696969 | 105,105,105 | ||
| dimgrey (昏灰色) | #696969 | 105,105,105 | ||
| dodgerblue (闪兰色) | #1e90ff | 30,144,255 | ||
| firebrick (耐火砖色) | #b22222 | 178,34,34 | ||
| floralwhite (花白色) | #fffaf0 | 255,250,240 | ||
| forestgreen (森林绿) | #228b22 | 34,139,34 | ||
| fuchsia (紫红色) | #ff00ff | 255,0,255 | ||
| gainsboro (淡灰色) | #dcdcdc | 220,220,220 | ||
| ghostwhite (幽灵白) | #f8f8ff | 248,248,255 | ||
| gold (金色) | #ffd700 | 255,215,0 | ||
| goldenrod (金菊色) | #daa520 | 218,165,32 | ||
| gray (灰色) | #808080 | 128,128,128 | ||
| green (绿色) | #008000 | 0,128,0 | ||
| greenyellow (黄绿色) | #adff2f | 173,255,47 | ||
| grey (灰色) | #808080 | 128,128,128 | ||
| honeydew (蜜瓜色) | #f0fff0 | 240,255,240 | ||
| hotpink (亮粉红色) | #ff69b4 | 255,105,180 | ||
| indianred (印度红) | #cd5c5c | 205,92,92 | ||
| indigo (靛蓝色) | #4b0082 | 75,0,130 | ||
| ivory (象牙色) | #fffff0 | 255,255,240 | ||
| khaki (黄褐色) | #f0e68c | 240,230,140 | ||
| lavender (淡紫色) | #e6e6fa | 230,230,250 | ||
| lavenderblush (淡紫红) | #fff0f5 | 255,240,245 | ||
| lawngreen (草地绿) | #7cfc00 | 124,252,0 | ||
| lemonchiffon (柠檬绸色) | #fffacd | 255,250,205 | ||
| lightblue (亮蓝色) | #add8e6 | 173,216,230 | ||
| lightcoral (亮珊瑚色) | #f08080 | 240,128,128 | ||
| lightcyan (亮青色) | #e0ffff | 224,255,255 | ||
| lightgoldenrodyellow (亮金菊黄) | #fafad2 | 250,250,210 | ||
| lightgray (亮灰色) | #d3d3d3 | 211,211,211 | ||
| lightgreen (亮绿色) | #90ee90 | 144,238,144 | ||
| lightgrey (亮灰色) | #d3d3d3 | 211,211,211 | ||
| lightpink (亮粉红色) | #ffb6c1 | 255,182,193 | ||
| lightsalmon (亮肉色) | #ffa07a | 255,160,122 | ||
| lightseagreen (亮海绿色) | #20b2aa | 32,178,170 | ||
| lightskyblue (亮天蓝色) | #87cefa | 135,206,250 | ||
| lightslategray (亮石灰色) | #778899 | 119,136,153 | ||
| lightslategrey (亮石灰色) | #778899 | 119,136,153 | ||
| lightsteelblue (亮钢兰色) | #b0c4de | 176,196,222 | ||
| lightyellow (亮黄色) | #ffffe0 | 255,255,224 | ||
| lime (酸橙色) | #00ff00 | 0,255,0 | ||
| limegreen (橙绿色) | #32cd32 | 50,205,50 | ||
| linen (亚麻色) | #faf0e6 | 250,240,230 | ||
| magenta (洋红色) | #ff00ff | 255,0,255 | ||
| maroon (栗色) | #800000 | 128,0,0 | ||
| mediumaquamarine (中碧蓝色) | #66cdaa | 102,205,170 | ||
| mediumblue (中蓝色) | #0000cd | 0,0,205 | ||
| mediumorchid (中粉紫色) | #ba55d3 | 186,85,211 | ||
| mediumpurple (中紫色) | #9370db | 147,112,219 | ||
| mediumseagreen (中海绿色) | #3cb371 | 60,179,113 | ||
| mediumslateblue (中暗蓝色) | #7b68ee | 123,104,238 | ||
| mediumspringgreen (中春绿色) | #00fa9a | 0,250,154 | ||
| mediumturquoise (中海湖蓝) | #48d1cc | 72,209,204 | ||
| mediumvioletred (中紫罗兰红) | #c71585 | 199,21,133 | ||
| midnightblue (午夜蓝) | #191970 | 25,25,112 | ||
| mintcream (薄荷色) | #f5fffa | 245,255,250 | ||
| mistyrose (浅玫瑰色) | #ffe4e1 | 255,228,225 | ||
| moccasin (鹿皮色) | #ffe4b5 | 255,228,181 | ||
| navajowhite (纳瓦白) | #ffdead | 255,222,173 | ||
| navy (海军蓝) | #000080 | 0,0,128 | ||
| oldlace (老花色) | #fdf5e6 | 253,245,230 | ||
| olive (橄榄色) | #808000 | 128,128,0 | ||
| olivedrab (草绿色) | #6b8e23 | 107,142,35 | ||
| orange (橙色) | #ffa500 | 255,165,0 | ||
| orangered (橙红色) | #ff4500 | 255,69,0 | ||
| orchid (粉紫色) | #da70d6 | 218,112,214 | ||
| palegoldenrod (苍麒麟色) | #eee8aa | 238,232,170 | ||
| palegreen (苍绿色) | #98fb98 | 152,251,152 | ||
| paleturquoise (苍松石色) | #afeeee | 175,238,238 | ||
| palevioletred (苍紫罗兰红) | #db7093 | 219,112,147 | ||
| papayawhip (番木色) | #ffefd5 | 255,239,213 | ||
| peachpuff (桃色) | #ffdab9 | 255,218,185 | ||
| peru (秘鲁色) | #cd853f | 205,133,63 | ||
| pink (粉红色) | #ffc0cb | 255,192,203 | ||
| plum (杨梅色) | #dda0dd | 221,160,221 | ||
| powderblue (粉蓝色) | #b0e0e6 | 176,224,230 | ||
| purple (紫色) | #800080 | 128,0,128 | ||
| red (红色) | #ff0000 | 255,0,0 | ||
| rosybrown (褐玫瑰红) | #bc8f8f | 188,143,143 | ||
| royalblue (宝蓝色) | #4169e1 | 65,105,225 | ||
| saddlebrown (重褐色) | #8b4513 | 139,69,19 | ||
| salmon (鲜肉色) | #fa8072 | 250,128,114 | ||
| sandybrown (沙褐色) | #f4a460 | 244,164,96 | ||
| seagreen (海绿色) | #2e8b57 | 46,139,87 | ||
| seashell (海贝色) | #fff5ee | 255,245,238 | ||
| sienna (赭色) | #a0522d | 160,82,45 | ||
| silver (银色) | #c0c0c0 | 192,192,192 | ||
| skyblue (天蓝色) | #87ceeb | 135,206,235 | ||
| slateblue (石蓝色) | #6a5acd | 106,90,205 | ||
| slategray (灰石色) | #708090 | 112,128,144 | ||
| slategrey (灰石色) | #708090 | 112,128,144 | ||
| snow (雪白色) | #fffafa | 255,250,250 | ||
| springgreen (春绿色) | #00ff7f | 0,255,127 | ||
| steelblue (钢兰色) | #4682b4 | 70,130,180 | ||
| tan | #d2b48c | 210,180,140 | ||
| teal (水鸭色) | #008080 | 0,128,128 | ||
| thistle (蓟色) | #d8bfd8 | 216,191,216 | ||
| tomato (番茄红) | #ff6347 | 255,99,71 | ||
| turquoise (青绿色) | #40e0d0 | 64,224,208 | ||
| violet (紫罗兰色) | #ee82ee | 238,130,238 | ||
| wheat (浅黄色) | #f5deb3 | 245,222,179 | ||
| white (白色) | #ffffff | 255,255,255 | ||
| whitesmoke (烟白色) | #f5f5f5 | 245,245,245 | ||
| yellow (黄色) | #ffff00 | 255,255,0 | ||
| yellowgreen (黄绿色) | #9acd32 | 154,205,50 |
currentColor’ 颜色关键字CSS1 与 CSS2 将 ‘border-color’ 属性的初始值 定义为 “‘
”,但没有相应的关键字。SVG 注意到这一缺失,SVG 1.0 为 ‘color’ 属性的值fill’、‘stroke’、‘stop-color’、‘flood-color’、‘lighting-color’ 属性引入了 ‘currentColor’ 值。CSS3 将颜色值进一步扩展为包括 ‘currentColor’ 关键字,以便在所有接受 <color> 值的属性中使用,这简化了这些属性在 CSS3 中的定义。
color’ 属性的值。‘currentColor’ 关键字的已用值即为 ‘color’ 属性的计算值。如果在 ‘color’ 属性本身上使用 ‘currentColor’,则视为 ‘color: inherit’。已废弃。 除可将颜色关键字值分配给文本、背景等之外,CSS2 还允许作者以与用户图形环境集成的方式指定颜色。
对于没有对应值的系统,指定值应映射到最近的系统颜色或默认颜色。请注意,某些 CSS 配置文件可能根本不支持系统颜色。
以下列出颜色相关 CSS 值的附加取值及其一般含义。任意颜色属性均可采用下列名称之一。虽然这些名称在 ASCII 范围内不区分大小写,但建议使用下表所示的混合大小写,以提升可读性。
例如,要将段落的前景色和背景色设置为用户窗口的前景色和背景色,可写成如下:
p { color: WindowText; background-color: Window }
虽然颜色可以为文档增添大量信息并提升可读性,但在文档中使用颜色时请参考 W3C 《网页内容可访问性指南》[WCAG20]。
绘制时,实现必须依据 SVG 11 第 14.2 节 简易 alpha 合成([SVG11])中的规则来处理 alpha。(如果该节中提到的 ‘color-interpolation’ 或 ‘color-rendering’ 属性未实现或不适用,实现应视为它们保持初始值。)
本附录为信息性而非规范性内容。实现可以将此样式表用作 HTML4、XHTML1、XHTML1.1、XHTML Basic 以及其他 XHTML 系列文档的默认样式之一。
html {
color: black;
background: white;
}
/* traditional desktop user agent colors for hyperlinks */
:link { color: blue; }
:visited { color: purple; }
/* default focus outline */
:focus {
outline: 1px dotted; /* or 1px dotted invert */
}
每个使用 CSS3 Color 的规范必须定义其允许和排除的 CSS3 Color 子集,并说明该子集所有组件的局部含义。
非规范性示例
| CSS3 Color 配置文件 | |
|---|---|
| 规范 | HTML4 |
| 接受 | 基础颜色关键字 RGB 六位十六进制颜色值 |
| 排除项 | ‘color’ 属性‘ opacity’ 属性RGB 三位十六进制颜色值和 RGB 功能记法颜色值 RGBA 颜色值 HSL 与 HSLA 颜色值 扩展颜色关键字 ‘ currentColor’ 颜色值CSS2 UI 颜色 ‘ transparent’ 颜色值 |
| 额外约束 | 无。 |
| CSS3 Color 配置文件 | |
|---|---|
| 规范 | CSS 第 1 级 |
| 接受 | ‘color’ 属性基础颜色关键字 RGB 颜色值 |
| 排除项 | ‘opacity’ 属性RGBA 颜色值 HSL 与 HSLA 颜色值 扩展颜色关键字 ‘ currentColor’ 颜色值CSS2 UI 颜色 ‘ transparent’ 颜色值 |
| 额外约束 | 无。 |
| CSS3 Color 配置文件 | |
|---|---|
| 规范 | CSS 第 2 级 |
| 接受 | ‘color’ 属性基础颜色关键字 RGB 颜色值 CSS2 UI 颜色 ‘ transparent’ 颜色值 |
| 排除项 | ‘opacity’ 属性RGBA 颜色值 HSL 与 HSLA 颜色值 扩展颜色关键字 ‘ currentColor’ 颜色值 |
| 额外约束 | ‘transparent’ 颜色值对 ‘color’ 属性无效。‘ orange’ 颜色值(属于扩展颜色关键字)在 CSS 第 2 级修订 1 中被接受。 |
| CSS3 Color 配置文件 | |
|---|---|
| 规范 | SVG 1.0 与 1.1 |
| 接受 | ‘color’ 属性‘ opacity’ 属性基础颜色关键字 RGB 颜色值 CSS2 UI 颜色 扩展颜色关键字 ‘ currentColor’ 颜色值 |
| 排除项 | RGBA 颜色值 HSL 与 HSLA 颜色值 ‘ transparent’ 颜色值 |
| 额外约束 | ‘currentColor’ 颜色值对 ‘color’ 属性无效。 |
已开发出一套 CSS Color 模块测试套件,后续可能会补充更多测试。该套件旨在让用户代理验证其对本规范的基本符合性。该套件并非穷尽,也未覆盖所有可能的数值颜色值。测试可在 https://test.csswg.org/harness/suite/css-color-3_dev/ 获取。
本节是非规范性的。
由于当时实现兴趣不足,‘@color-profile’ at‑rule(用于指定 ICC 配置文件)、控制这些配置文件渲染意图的机制以及使用这些配置文件的方式(‘color-profile’ 属性)等与颜色管理相关的若干特性已从 CSS Color 3 中移除。
相关特性在 CSS Color 4 与 5 中继续发展;参见 ‘color()’ 函数、‘@color-profile’ at‑rule,以及 ‘rendering-intent’ 描述符。
感谢 Brad Pettit 编写颜色配置文件并实现它。感谢 Steven Pemberton 撰写 HSL 颜色的介绍。特别感谢 Marc Attinasi、Bert Bos、Joe Clark、fantasai、Patrick Garies、Tony Graham、Ian Hickson、Susan Lesch、Alex LeDonne、Cameron McCormack、Krzysztof Maczyński、Chris Moschini、Chris Murphy、Christoph Päper、David Perrell、Jacob Refstrup、Dave Singer、Jonathan Stanley、Andrew Thompson、Russ Weakley、Etan Wexler、David Woolley、Boris Zbarsky、Steve Zilles、XSL 工作组的 XSL FO 子组,以及所有 www‑style 社区的其他成员。并感谢 Chris Lilley 担任常驻 CSS Color 专家。
已进行以下编辑更正
本文件与 2011 年 6 月 7 日推荐版的区别在于包含以下更改
currentColor’ 成为计算值并在使用值时解析,而不是在计算值阶段解析。(测试, 结果)。有关早期草稿的更改,请参阅之前推荐版的更改以及其中链接的以前版本。
先前对评论的处理
| 属性 | 值 | 初始值 | 应用于 | 继承 | 百分比 |
|---|---|---|---|---|---|
| color | <color> | inherit | 取决于用户代理 | 是 | 不适用 | |
| opacity | <alphavalue> | inherit | 1 | 否 | 不适用 |