Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
CSS(层叠样式表)是一种用于描述HTML和XML文档在屏幕、纸张、语音等上的呈现的语言。它使用与颜色相关的属性和值为文档中的文本、背景、边框及元素的其他部分着色。本规范描述了前景色和群组不透明度的颜色值和属性。这些包括来自CSS第2级的属性和值以及新的值。
本节描述了本文档在发布时的状态。当前W3C出版物列表及本技术报告的最新修订版可在W3C技术报告索引(https://www.w3.org/TR/)中找到。
本文件由CSS工作组以推荐标准形式发布,使用推荐标准轨道。
W3C推荐标准是一种规范,在广泛的共识构建之后,得到W3C及其成员的认可,并且工作组成员承诺为实现免费许可。
W3C推荐将此规范广泛部署为Web的标准。
本文件由在W3C专利政策下运作的小组制作。W3C维护了任何专利披露的公开列表,该页面还包括专利披露的指示。了解专利内容的个人如果认为专利中包含基本声明,必须根据W3C专利政策第6节披露信息。
本文件受2021年11月2日W3C流程文档管理。
单独的 实现报告显示了测试套件中的每个测试都通过了至少两个独立实现。 然而,大多数测试现已为CSS Color 4进行了更新(见实现报告)。
本文档的完整变更列表可用。
本节为非规范性内容。
超越第2级的CSS是一组模块,分割开来允许规范与其实现一同逐步发展。本规范是这些模块之一。
本模块描述了允许作者指定元素前景色和不透明度的CSS属性。该模块还详细描述了CSS <color> 值类型。
它不仅定义了已经存在于CSS1和CSS2中的与颜色相关的属性和值,还定义了新的属性和值。
该规范是以下推荐标准和工作草案相关部分合并的结果,并新增了一些新功能。
其他术语定义在定义部分[CSS21]中。文档源代码和片段的示例以XML [XML10]或HTML [HTML401]语法给出。
color
’ 属性名称: | color |
---|---|
值: | <color> | inherit |
初始值: | 取决于用户代理 |
适用于: | 所有元素 |
继承: | 是 |
百分比: | N/A |
计算值: |
|
该属性描述了元素文本内容的前景色。此外,它还用于为任何其他接受颜色值的属性提供一个潜在的间接值(currentColor)。如果在‘currentColor
’关键字本身设置在‘color
’属性上,则它被视为‘color: inherit
’。
有多种方法可以指定酸橙绿:
em { color: lime } /* 颜色关键字 */ em { color: rgb(0,255,0) } /* RGB 范围 0-255 */
opacity
’
属性不透明度可以被视为一种后处理操作。从概念上讲,在元素(包括其后代)被渲染到一个RGBA离屏图像后,不透明度设置指定了如何将离屏渲染混合到当前的合成渲染中。详情请参见简单Alpha合成。
名称: | opacity |
---|---|
值: | <alphavalue> | inherit |
初始值: | 1 |
适用于: | 所有元素 |
继承: | 否 |
百分比: | N/A |
计算值: | 与指定值相同,在将<alphavalue>裁剪到[0.0,1.0]范围后。 |
由于不透明度小于1的元素是从单个离屏图像合成的,因此其外部的内容无法在z轴顺序中夹在其内部内容的各部分之间。出于同样的原因,实现必须为不透明度小于1的任何元素创建一个新的堆叠上下文。如果不透明度小于1的元素没有定位,那么它将与定位元素(堆叠级别为0)一起绘制在其父级堆叠上下文的同一层上。如果不透明度小于1的元素是定位的,那么‘z-index
’属性如[CSS21]中所述适用,除非使用的值为‘auto
’,则该元素的行为完全如同它是‘0
’。有关堆叠上下文的更多信息,请参见第9.9节和附录E。这些规则不适用于SVG元素,因为SVG有自己的渲染模型([SVG11],第3章)。
<color>可以是一个关键字或数值规格。
基本颜色关键字的列表包括:aqua、black、blue、fuchsia、gray、green、lime、maroon、navy、olive、purple、red、silver、teal、white 和 yellow。这些颜色名称是ASCII大小写不敏感的。
名称 | 数值 | 颜色名称 | 十六进制 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表示法(#rgb)通过复制数字转换为六位数形式(#rrggbb),而不是通过添加零。例如,#fb0扩展为#ffbb00。这确保了白色(#ffffff)可以用短格式(#fff)指定,并消除了对显示器颜色深度的任何依赖。
功能表示法中的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) } /* 整数范围 0 - 255 */ em { color: rgb(300,0,0) } /* 被剪切为 rgb(255,0,0) */ em { color: rgb(255,-10,0) } /* 被剪切为 rgb(255,0,0) */ em { color: rgb(110%, 0%, 0%) } /* 被剪切为 rgb(100%,0%,0%) */
其他设备(如打印机)的色域与sRGB不同;某些在0..255 sRGB范围之外的颜色将可表示(在设备色域内),而某些在0..255 sRGB范围内的颜色将超出设备色域,因此将被映射。
在本规范中,RGB颜色模型扩展为包含“alpha”以允许指定颜色的不透明度。详情请参见简单Alpha合成。这些示例都指定了相同的颜色:
em { color: rgb(255,0,0) } /* 整数范围 0 - 255 */ em { color: rgba(255,0,0,1) /* 相同的颜色,带有显式不透明度 1 */ em { color: rgb(100%,0%,0%) } /* 浮点数范围 0.0% - 100.0% */ em { color: rgba(100%,0%,0%,1) } /* 相同的颜色,带有显式不透明度 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) } /* 半透明纯蓝色 */ p { color: rgba(100%, 50%, 0%, 0.1) } /* 非常透明的纯橙色 */
注意。 如果用户代理不支持RGBA值,它们应根据CSS前向兼容性解析规则([CSS21],第4章)被视为无法识别的值。RGBA值不能被简单地视为忽略了不透明度的RGB值。
transparent
’ 颜色关键字CSS1 引入了用于 background-color 属性的‘transparent
’值。CSS2 允许
border-color 属性也接受‘transparent
’值。开放电子书(tm)出版结构 1.0.1 [OEB101] 扩展了‘color
’属性,以接受‘transparent
’关键字。CSS3 扩展了颜色值,以包括‘transparent
’关键字,以允许其在所有接受 <color> 值的属性中使用。这简化了 CSS3 中这些属性的定义。
CSS3 增加了数值表示的色相-饱和度-亮度(HSL)颜色,作为数值RGB颜色的补充。已经观察到RGB颜色有以下局限性:
还有其他几种颜色方案可能。HSL的一些优点是它对亮度和暗度是对称的(例如HSV就不是这样),并且将HSL转换为RGB非常简单。
HSL颜色编码为三元组(色相、饱和度、亮度)。色相表示为颜色圆的角度(即以圆形表示的彩虹)。这个角度通常以度为单位,因此在CSS中单位是隐含的;在语法上,只给出一个<number>。按定义,红色=0=360,其他颜色分布在圆周上,因此绿色=120,蓝色=240,等等。作为角度,它隐含地循环,即-120=240和480=120。实现可以通过计算(((x mod 360) + 360) mod 360)将这样的角度x规范化为[0,360)范围(即零度(含)到360度(不含))。饱和度和亮度表示为百分比。100%表示全饱和度,0%表示灰度。0%亮度是黑色,100%亮度是白色,50%亮度是“正常”的亮度。
例如:
* { color: hsl(0, 100%, 50%) } /* 红色 */ * { color: hsl(120, 100%, 50%) } /* 酸橙色 */ * { color: hsl(120, 100%, 25%) } /* 深绿色 */ * { color: hsl(120, 100%, 75%) } /* 浅绿色 */ * { color: hsl(120, 75%, 75%) } /* 粉绿色,等等 */
HSL相比RGB的优势在于它更加直观:你可以猜测你想要的颜色,然后进行微调。创建匹配的颜色组也更容易(通过保持色相相同并改变亮度/暗度和饱和度)。
如果饱和度小于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)]; }
下表中的每个表格代表一种色相。从色彩圆中选择了十二种间隔均匀的颜色(即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对应项。详情请参见简单Alpha合成。这些示例指定了相同的颜色:
em { color: hsl(120, 100%, 50%) } /* 绿色 */ em { color: hsla(120, 100%, 50%, 1) } /* 相同的颜色,带有显式不透明度1 */
HSLA颜色值在功能表示法中的格式为‘hsla(
’后跟色相(以度为单位)、饱和度和亮度(以百分比表示),以及<alphavalue>,再然后是‘)
’。数值周围允许有空白字符。
实现必须根据由这些组件组成的HSL颜色值的规则,将HSLA颜色值的色相、饱和度和亮度分量裁剪到设备色域内。
这些示例指定了使用hsla()表示法可以实现的效果:
p { color: hsla(240, 100%, 50%, 0.5) } /* 半透明纯蓝色 */ p { color: hsla(30, 100%, 50%, 0.1) } /* 非常透明的纯橙色 */
下表提供了流行浏览器支持的X11颜色列表,[X11COLORS]并增加了来自SVG 1.0的灰色/灰色变体。最终的列表与SVG 1.0 颜色关键字名称完全相同。本规范扩展了它们在SVG之外的定义。左侧的两个颜色样本展示了以两种方式设置表格单元格的背景颜色:第一列使用命名的颜色值,第二列使用相应的数值颜色值。
命名 | 数值 | 颜色名称 | 十六进制 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
’属性的计算值。如果‘currentColor
’关键字设置在‘color
’属性本身上,则它被视为‘color: inherit
’。
已废弃。 除了能够为文本、背景等分配颜色关键字值之外,CSS2还允许作者以一种方式指定颜色,使其能够集成到用户的图形环境中。
对于没有相应值的系统,指定的值应映射到最近的系统颜色值或默认颜色。请注意,某些CSS配置文件可能根本不支持系统颜色。
以下列出了颜色相关CSS值的其他值及其一般含义。任何颜色属性都可以采用以下名称之一。虽然这些名称是ASCII大小写不敏感的,但建议使用下文所示的混合大小写,以使名称更易读。
例如,要将段落的前景色和背景色设置为用户窗口的相同前景色和背景色,请编写以下内容:
p { color: WindowText; background-color: Window }
虽然颜色可以为文档添加大量信息并使其更易于阅读,但在文档中包含颜色时,请考虑W3C的《Web内容可访问性指南》[WCAG20]。
在绘制时,实现必须根据《SVG
1.1》14.2节“简单Alpha合成”中的规则处理alpha值[SVG11]。(如果该节中提到的‘color-interpolation
’或‘color-rendering
’属性未实现或不适用,实现必须按照它们的初始值进行操作。)
本附录是说明性的,不具规范性。此样式表可供实现作为HTML4、XHTML1、XHTML1.1、XHTML Basic及其他XHTML系列文档的默认样式的一部分使用。
html { color: black; background: white; } /* 传统桌面用户代理的超链接颜色 */ :link { color: blue; } :visited { color: purple; } /* 默认焦点轮廓 */ :focus { outline: 1px dotted; /* 或 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 level 1 |
接受 | ‘color ’属性基础颜色关键字 RGB颜色值 |
排除 | ‘opacity ’属性RGBA颜色值 HSL和HSLA颜色值 扩展颜色关键字 ‘ currentColor ’颜色值CSS2 UI颜色 ‘ transparent ’颜色值 |
额外约束 | 无。 |
CSS3 Color配置文件 | |
---|---|
规范 | CSS level 2 |
接受 | ‘color ’属性基础颜色关键字 RGB颜色值 CSS2 UI颜色 ‘ transparent ’颜色值 |
排除 | ‘opacity ’属性RGBA颜色值 HSL和HSLA颜色值 扩展颜色关键字 ‘ currentColor ’颜色值 |
额外约束 | ‘transparent ’颜色值不适用于‘color ’属性。‘ orange ’颜色值(属于扩展颜色关键字)在CSS level 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/。
本节非规范性。
一些与色彩管理相关的功能,如用于指定ICC配置文件的‘@color-profile
’规则、控制这些配置文件的渲染意图的方法以及使用这些配置文件的方式(‘color-profile
’属性)因当时缺乏实现兴趣而从CSS Color 3中移除。
相关功能的开发在CSS Color 4和5中继续;参见‘color()
函数,‘@color-profile
’规则,以及‘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 | 取决于用户代理 | 是 | N/A | |
opacity | <alphavalue> | inherit | 1 | 否 | N/A |