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 + ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
other descriptors such as x-height, glyph widths, and panose-1 to identify a<br />
different tentative font family. If there are matches for all the remaining<br />
descriptors, then that is the matching font face for the given element. The<br />
’font-family’ descriptor that is reflected into the <strong>CSS2</strong> properties is the font<br />
family that was requested, not whatever name the intelligently matched font<br />
may have. UAs that do not implement intelligent matching are considered to<br />
fail at this step.<br />
4. If there is no matching font face within the ’font-family’ being processed by<br />
step 3, UAs that implement font downloading may proceed to examine the<br />
’src’ descriptor of the tentative font face identified in step 2 or 3 to identify a<br />
network resource that is available, and of the correct format. If there are<br />
matches for all the remaining descriptors, then that is the matching font face<br />
for the given element and the UA may attempt to download this font<br />
resource. The UA may choose to block on this download or may choose to<br />
proceed to the next step while the font downloads. UAs that do not implement<br />
font download, or are not connected to a network, or where the user<br />
preferences have disabled font download, or where the requested resource<br />
is unavailable for whatever reason, or where the downloaded font cannot be<br />
used for whatever reason, are considered to fail at this step.<br />
5. If there is no matching font face within the ’font-family’ being processed by<br />
step 3, UAs that implement font synthesis may proceed to examine other<br />
descriptors such as ’x-height’, glyph widths, and ’panose-1’ to identify a<br />
different tentative font family for synthesis. If there are matches for all the<br />
remaining descriptors, then that is the matching font face for the given<br />
element and synthesis of the faux font may begin. UAs that do not implement<br />
font synthesis are considered to fail at this step.<br />
6. If all of steps 3, 4 and 5 fail, and if there is a next alternative ’font-family’ in<br />
the font set, then repeat from step 2 with the next alternative ’font-family’.<br />
7. If there is a matching font face, but it doesn’t contain glyph(s) for the current<br />
character(s), and if there is a next alternative ’font-family’ in the font sets,<br />
then repeat from step 2 with the next alternative ’font-family’. The<br />
’unicode-range’ descriptor may be used to rapidly eliminate from consideration<br />
those font faces that do not have the correct glyphs. If the<br />
’unicode-range’ descriptor indicates that a font contains some glyphs in the<br />
correct range, it may be examined by the UA to see if it has that particular<br />
one.<br />
8. If there is no font within the family selected in 2, then use the inherited or<br />
UA-dependent ’font-family’ value and repeat from step 2, using the best<br />
match that can be obtained within this font. If a particular character cannot<br />
be displayed using this font, the UA should indicate that a character is not<br />
being displayed (for example, using the ’missing character’ glyph).<br />
9. UAs that implement progressive rendering and have pending font downloads<br />
may, once download is successful, use the downloaded font as a font family.<br />
If the downloaded font is missing some glyphs that the temporary progressive<br />
font did contain, the downloaded font is not used for that character and<br />
the temporary font continues to be used.<br />
Note. The above algorithm can be optimized to avoid having to revisit the<br />
<strong>CSS2</strong> properties for each character.<br />
232