Why is DarkGray lighter than Gray?
Simple curiosity here, tinged with some practical concerns because I get caught out by this occasionally.
How come Color.开发者_如何学GoDarkGray
is lighter than Color.Gray
?
Wikipedia has some information on the subject. It sounds like a lot of the named color definitions come from X Windows System. On X, "Gray" is actually closer to "Silver". However, the W3C defined Gray (more appropriately?) as RGB 50%.
Here's some more Wikipedia on the subject:
Perhaps most unusual of the color clashes between X11 and W3C is the case of "Gray" and its variants. In HTML, "Gray" is specifically reserved for the 128 triplet (50% gray). However, in X11, "gray" was assigned to the 190 triplet (74.5%), which is close to W3C "Silver" at 192 (75.3%), and had "Light Gray" at 211 (83%) and "Dark Gray" at 169 (66%) counterparts. As a result, the combined CSS 3.0 color list that prevails on the web today produces "Dark Gray" as a significantly lighter tone than plain "Gray", because "Dark Gray" was descended from X11 – for it did not exist in HTML nor CSS level 1 – while "Gray" was descended from HTML. Even in the current draft for CSS 4.0, dark gray continues to be a lighter shade than gray.
W3C color keywords:
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
Nine assigned names where the R, G, and B values are numerically equal:
I would like to quote Tim Sneath's discussion regarding that,
These colours don't actually originate in HTML` - they date still further back than that to the X Window System that originated on UNIX systems. The HTML specification defines sixteen named colours that map onto the basic sixteen colours present in the EGA palette, but the earliest browsers such as Mosaic also supported any of the other X11 named colours, based on their colour representation as defined on X. Unfortunately, some of the original sixteen named colours have different representations to the X11 equivalents, for example Green is represented in X11 in this colour, whereas in HTML it's represented in this colour. The unfortunate result is that Gray is defined as #808080 in HTML, but DarkGray is represented as #A9A9A9, meaning that they're the wrong way around. Since WPF allows the same named colours as HTML for compatibility, the result is that the same idiosyncrasies carry forward. (You can find more information on the full set of X11 colour names and their representations in Wikipedia).
That's why the author also states that it is better to use the hex or scRGB to represent colors.
My recommendation therefore is in general to use the hex or scRGB colour representations wherever possible, or you might be surprised by the colours that you pick not matching your expectations!
精彩评论