这里只是简单的好奇心,带着一些实际的担忧,因为我偶尔会被这个问题所困扰。
Color.DarkGray
比Color.Gray
轻?
此行为也显示在 CSS 中,其中属性
color: darkgrey
呈现 #A9A9A9,而 color: grey
呈现 #808080。
维基百科有一些关于该主题的信息。听起来很多命名的颜色定义都来自 X Windows 系统。在X上,“灰色”实际上更接近“银色”。然而,W3C 将灰色(更合适?)定义为 RGB 50%。
这是关于该主题的更多维基百科:
X11 和 W3C 之间最不寻常的颜色冲突也许是 “灰色”及其变体的情况。在 HTML 中,“灰色”具体是 为 128 三元组保留(50% 灰色)。然而,在X11中,“灰色”是 分配给 190 个三元组 (74.5%),接近 W3C“银牌” 192 (75.3%),“浅灰色”为 211 (83%) 和“深灰色” 169 (66%) 名同行。结果,组合的 CSS 3.0 颜色 当今网络上流行的列表产生“深灰色”作为 色调明显比普通的“灰色”浅,因为“深灰色” 源自 X11 – 因为它不存在于 HTML 或 CSS 级别 1 – 而“Gray”源自 HTML。即使在目前的草案中 对于 CSS 4.0,深灰色仍然比灰色更浅。
W3C 颜色 关键词:
DimGray '#696969' (105,105,105)
Gray '#808080' (128,128,128)
DarkGray '#A9A9A9' (169,169,169) //equal to X11 DarkGray
Silver '#C0C0C0' (192,192,192) //close to X11 Gray (190,190,190)
LightGray '#D3D3D3' (211,211,211) //equal to X11 LightGray
Gainsboro '#DCDCDC' (220,220,220)
W3C Grays
九个分配的名称,其中 R、G 和 B 值在数字上相等:
<table border="1" style="border-collapse: collapse; width: 100%;">
<td style="width: 11%; background-color: Black; color: white;">
Black<br /> 0, 0, 0<br /><br />
</td>
<td style="width: 11%; background-color: DimGray; color: white;">
DimGray<br /> 105, 105, 105<br /><br />
</td>
<td style="width: 11%; background-color: Gray; color: white;">
Gray<br /> 128. 128, 128<br /><br />
</td>
<td style="width: 11%; background-color: DarkGray;">
DarkGray<br /> 169, 169, 169<br /><br />
</td>
<td style="width: 11%; background-color: Silver;">
Silver<br /> 192, 192, 192<br /><br />
</td>
<td style="width: 11%; background-color: LightGray;">
LightGray<br /> 211, 211, 211<br /><br />
</td>
<td style="width: 11%; background-color: Gainsboro;">
Gainsboro<br /> 220, 220, 220<br /><br />
</td>
<td style="width: 11%; background-color: WhiteSmoke;">
WhiteSmoke<br /> 245, 245, 245<br /><br />
</td>
<td style="width: 11%; background-color: White;">
White<br /> 255, 255, 255<br /><br />
</td>
</table>
我想引用Tim Sneath 的讨论,
这些颜色实际上并非起源于 HTML` - 它们的历史仍然比起源于 UNIX 系统的 X Window 系统更早。HTML 规范定义了 16 种命名颜色,它们映射到 16 种基本颜色。 EGA 调色板,但最早的浏览器(例如 Mosaic)也支持任何其他 X11 命名颜色,基于 X 上定义的颜色表示。不幸的是,例如,最初的 16 种命名颜色中的一些与 X11 等效颜色具有不同的表示形式绿色在 X11 中用这种颜色表示,而在 HTML 中用这种颜色表示。不幸的结果是,Gray 在 HTML 中定义为 #808080,但 DarkGray 表示为 #A9A9A9,这意味着它们的方式是错误的。由于 WPF 允许使用与 HTML 相同的命名颜色以实现兼容性,因此相同的特性得以延续。 (您可以在维基百科中找到有关全套 X11 颜色名称及其表示形式的更多信息)。
这就是为什么作者还指出最好使用十六进制或scRGB来表示颜色。
因此,我的建议通常是尽可能使用十六进制或scRGB颜色表示,否则您可能会对您选择的颜色与您的期望不符感到惊讶!