W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...
W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...
W3C CSS2 Cascading Style Sheets, level 2 - instructional media + ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
The per-descriptor matching rules from (2) above are as follows:<br />
1. ’font-style’ is tried first. ’italic’ will be satisfied if there is either a face in the<br />
UA’s font database labeled with the CSS keyword ’italic’ (preferred) or<br />
’oblique’. Otherwise the values must be matched exactly or font-style will fail.<br />
2. ’font-variant’ is tried next. ’normal’ matches a font not labeled as<br />
’small-caps’; ’small-caps’ matches (1) a font labeled as ’small-caps’, (2) a<br />
font in which the small caps are synthesized, or (3) a font where all lowercase<br />
letters are replaced by uppercase letters. A small-caps font may be<br />
synthesized by electronically scaling uppercase letters from a normal font.<br />
3. ’font-weight’ is matched next, it will never fail. (See ’font-weight’ below.)<br />
4. ’font-size’ must be matched within a UA-dependent margin of tolerance.<br />
(Typically, sizes for scalable fonts are rounded to the nearest whole pixel,<br />
while the tolerance for bitmapped fonts could be as large as 20%.) Further<br />
computations, e.g., by ’em’ values in other properties, are based on the<br />
’font-size’ value that is used, not the one that is specified.<br />
15.5.1 Mapping font weight values to font names<br />
The ’font-weight’ property values are given on a numerical scale in which the<br />
value ’400’ (or ’normal’) corresponds to the "normal" text face for that family. The<br />
weight name associated with that face will typically be Book, Regular, Roman,<br />
Normal or sometimes Medium.<br />
The association of other weights within a family to the numerical weight values<br />
is intended only to preserve the ordering of weights within that family. User<br />
agents must map names to values in a way that preserves visual order; a face<br />
mapped to a value must not be lighter than faces mapped to lower values. There<br />
is no guarantee on how a user agent will map font faces within a family to weight<br />
values. However, the following heuristics tell how the assignment is done in<br />
typical cases:<br />
If the font family already uses a numerical scale with nine values (as e.g.,<br />
OpenType does), the font weights should be mapped directly.<br />
If there is both a face labeled Medium and one labeled Book, Regular,<br />
Roman or Normal, then the Medium is normally assigned to the ’500’.<br />
The font labeled "Bold" will often correspond to the weight value ’700’.<br />
If there are fewer then 9 weights in the family, the default algorithm for filling<br />
the "holes" is as follows. If ’500’ is unassigned, it will be assigned the same<br />
font as ’400’. If any of the values ’600’, ’700’, ’800’, or ’900’ remains unassigned,<br />
they are assigned to the same face as the next darker assigned<br />
keyword, if any, or the next lighter one otherwise. If any of ’300’, ’200’, or<br />
’100’ remains unassigned, it is assigned to the next lighter assigned<br />
keyword, if any, or the next darker otherwise.<br />
There is no guarantee that there will be a darker face for each of the<br />
’font-weight’ values; for example, some fonts may have only a normal and a bold<br />
face, others may have eight different face weights.<br />
The following two examples show typical mappings.<br />
233