22.12.2013 Views

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 + ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!