Does style="color: #FFF;" render as #F0F0F0 or #FFFFFF?
I feel I should encourage people to not do this, as it is equivalent to telling someone you want 15 of something and then expecting them to show up with 255. What a gross and strange way to shorthand 0xFFFFFF. This is the "r u there" of web design to me.
The CSS2 spec section 4.3.6 Colors:
The RGB color model is used in numerical color specifications. These examples all specify the same color:
em { color: #f00 } /* #rgb */ em { color: #ff0000 } /* #rrggbb */ em { color: rgb(255,0,0) } em { color: rgb(100%, 0%, 0%) }
The format of an RGB value in hexadecimal notation is a '#' immediately followed by either three or six hexadecimal characters. The three-digit RGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the display.
Since all modern browsers support CSS you can assume it will work this way in your web sites and web applications.
CSS 2.1 (http://www.w3.org/TR/CSS2/syndata.html#value-def-color):
The three-digit RGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the display.
Wordings of CSS 1, CSS 3 are the same. The CSS 4 draft say similar things.
The Internet Explorer and Firefox docs state the same method.
As a practical example, please check out this snippet, which features 3 <div>
s of styles
div { width: 100px; height: 100px; }
<div style="background-color:#f0f0f0;">#f0f0f0</div>
<div style="background-color:#fff;">#fff</div>
<div style="background-color:#ffffff;">#ffffff</div>
On Mac OS X 10.6, all Firefox 3.6, Opera 10.10, Safari 4 rendered #fff
as #ffffff
.
I don't see a reason why a browser or the standard wants to deviate from this expansion in the future, since the color #ffffff
is far more common than #f0f0f0
.
Testing on IE8, Firefox 3.6, and Google Chrome 5.0 beta, all three browsers repeat the hex digit:
- 000 produces 000000
- FFF produces FFFFFF
- 876 produces 887766
...and so forth.