Continguts:

1. Introducció
2. Especificació de fonts
2.1. Propietats de l'especificació de fonts
2.2. Família de fonts: la propietat 'font-family'
2.3. Estilització de la font: les propietats 'font-style', 'font-variant', 'font-weight' i 'font-stretch'
2.4. Mida de la font: les propietats 'font-size' i 'font-size-adjust'
2.5. Propietat drecera de fonts: la propietat 'font'
2.6. Famílies de fonts genèriques: 'serif', 'sans-serif', 'cursive', 'fantasy' i 'monospace'
3. Selecció de fonts
3.1. Descripcions de fonts i @font-face
3.2. Descriptors per a seleccionar una font: 'font-family', 'font-style', 'font-variant', 'font-weight', 'font-stretch'i 'font-size'
3.3. Descriptors per a la qualificació de les dades d'una font: 'unicode-range'
3.4. Descriptor per a valors numèrics: 'units-per-em'
3.5. Descriptor per a la referenciació: 'src'
3.6. Descriptors per a la unificació: 'panose-1', 'stemv', 'stemh', 'slope', 'cap-height', 'x-height', 'ascent' i 'descent'
3.7. Descriptors per a la síntesi: 'widths', 'bbox' i 'definition-src'
3.8. Descriptors per a l'alineació: 'baseline', 'centerline', 'mathline' i 'topline'
3.9. Exemples
4. Característiques de fonts
4.1. Introducció a les característiques de les fonts
4.2. Nom sencer de la font
4.3. Unitats de coordenades del quadrat em
4.4. Línia base central
4.5. Codificació de les fonts
4.6. Nom de família de fonts
4.7. Amplades dels glyphs
4.8. Amplada dels troncs horitzontals
4.9. Alçada dels glyphs de les majúscules
4.10. Alçada dels glyphs de les minúscules
4.11. Línia base inferior
4.12. Línia base matemàtica
4.13. Caixa de límits maximals
4.14. Alçada màxima no accentuada
4.15. Profunditat màxima no accentuada
4.16. Nombre panose-1
4.17. Rang de caràcters de la ISO 10646
4.18. Línia base superior
4.19. Amplada dels troncs verticals
4.20. Angle del traç vertical
5. Algorisme d'unificació de fonts
5.1. Correspondència dels valors del pes de les fonts amb els noms de les fonts
5.2. Exemples d'unificació de fonts
1. Introducció
Quan el text d'un document ha de ser presentat visualment s'ha d'establir una relació de correspondència entre els caràcters (elements abstractes d'informació) i els glyphs abstractes. Un o més caràcters poden ser representats per un o més glyphs abstractes, d'una manera possiblement depenent de context. Un glyph és la representació artística real d'un glyph abstracte, en un determinat estil tipogràfic, en forma de contorns o bitmaps que puguin ser traçats en la pantalla o el paper. Una font és un conjunt de glyphs, seguint tots ells els mateixos motius bàsics d'acord amb el disseny, la mida, l'aparença i altres atributs associats al conjunt sencer, i una correspondència dels caràcters amb els glyphs abstractes.

Un agent d'usuari visual ha de tractar les següents qüestions abans de presentar realment un caràcter:


Tant en CSS1 com en CSS2, els autors especifiquen les característiques de les fonts via una sèrie de propietats de font.

La manera com l'agent d'usuari utilitza aquestes propietats, quan no hi ha cap font coincident en el client, s'ha ampliat de CSS1 a CSS2. En CSS1 se suposava que totes les fonts es trobaven presents en el sistema client i s'identificaven només pel nom. Les fonts alternatives es podien especificar a través de les propietats, però més enllà d'això, els agents d'usuari no tenien cap manera de proposar altres fonts a l'usuari (fins i tot fonts estilísticament similars a les que l'agent d'usuari tenia disponibles) que no fossin les fonts genèriques per defecte.

CSS2 canvia tot això, i permet una major llibertat:


CSS2 millora la unificació de fonts client-side, habilita la síntesi de fonts i la presentació progressiva, i habilita les fonts per a ser descarregades desde la Xarxa. A aquestes capacitats millorades se les referencia com a 'WebFonts' ("Fonts de la Xarxa").

En el model de font de CSS2, tal com en CSS1, cada agent d'usuari té una "base de dades de fonts" a la seva disposició. CSS1 feia referència a aquesta base de dades però no donava cap detall sobre què hi havia dins. CSS2 defineix la informació continguda en aquesta base de dades i permet que els autors de fulls d'estil hi facin la seva contribució. Quan se'ls demana visualitzar un caràcter amb una font en particular, l'agent d'usuari primer identifica la font de la base de dades que més s'assembli a la font especificada (d'acord amb l'algorisme d'unificació de fonts). Un cop ha identificat una font, recupera les dades de la font localment o des de la Xarxa, i pot visualitzar el caràcter utilitzant aquells glyphs.

A la llum d'aquest model, aquesta especificació s'ha organitzat en dues seccions. La primera concerneix al mecanisme d'especificació de fonts, per mitjà del qual els autors especifiquen quines fonts els agradaria que s'utilitzessin. La segona concerneix al mecanisme de selecció de fonts, mitjançant el qual l'agent d'usuari del client identifica i carrega una font que més s'assembli a l'especificació de l'autor.

La manera com l'agent d'usuari construeix la base de dades de fonts queda fora de l'abast de l'especificació de CSS2 (i, per tant, d'aquest manual) ja que la implementació de la base de dades depèn de factors tals com el sistema operatiu, el sistema de finestres i el client.
2. Especificació de fonts
La primera fase del mecanisme de fonts de CSS concerneix a com els autors de fulls d'estil especifiquen quines fonts haurien de ser utilitzades per un agent d'usuari. En primer lloc, sembla que la manera òbvia d'especificar una font és mitjançant el seu nom, una sola cadena - de la qual se'n poden diferenciar diverses parts; per exemple, "BT Swiss 721 Heavy Italic".

Desafortunadament, no existeix cap taxonomia (sistemàtica) ben definida i acceptada universalment per a la classificació de les fonts basant-se en els seus noms, i els termes que es poden aplicar al nom d'una família de fonts poden no ser apropiats per a d'altres. Per exemple, el terme 'italic' és usat comunament per a etiquetar text inclinat, però el text inclinat pot també ser etiquetat com Oblique, Slanted, Incline, Cursive o Kursiv. Similarment, els noms de font contenen típicament termes que descriuen el "pes" d'una font. El rol primari d'aquests noms és distingir cares (faces, en anglès) de diferent foscor d'entre les d'una família de fonts. No hi ha cap significat acceptat universalment per a aquests noms de pes de fonts i el seu ús varia àmpliament. Per exemple, una font que es podria pensar que és bold pot ser descrita com a Regular, Roman, Book, Medium, Semi- o Demi-Bold, Bold o Black, depenent de com és de negra la cara "normal" de la font dins el disseny.

Aquesta manca de nomenclatura sistemàtica fa impossible, en el cas general, de generar un nom de cara d'una font modificada que es diferencia d'alguna manera, com per exemple, per ser més gruixuda (més bold).

A causa d'això, CSS utilitza un model diferent. Les fonts es busquen no a través d'un sol nom de font sinó a través de l'assignació d'una sèrie de propietats de font. Aquests valors de propietats formen la base del mecanisme de selecció de fonts de l'agent d'usuari. Les propietats de font poden modificar-se individualment, per exemple, per a incrementar-ne el gruix, i el nou conjunt de valors de les propietats de font s'utilitzaran aleshores per a fer una altra selecció en la base de dades de fonts. El resultat és un increment en regularitat per als autors i implementadors de fulls d'estil, i un increment en robustesa.
2.1. Propietats de l'especificació de fonts
CSS2 especifica les fonts d'acord amb aquestes característiques:

Família de la font
La família de la font especifica quina família de fonts s'ha d'utilitzar per a presentar el text. Una família de fonts és un grup de fonts dissenyades per a ser utilitzades en combinació i que exhibeixen similaritats en el disseny. Un membre de la família pot ser itàlic, un altre gruixut (bold), un altre condensat o pot utilitzar caixa baixa (minúscules). Entre els noms de famílies de fonts hi trobem "Helvetica", "New Century Schoolbook" i "Kyokasho ICA L". Els noms de famílies de fonts no estan restringits als caràcters llatins. Les famílies de fonts poden agrupar-se en diferents categories: aquelles amb o sense serifs, aquelles amb caràcters espaiats proporcionalment o no, aquelles que semblen escriptura manual, aquelles que són fonts de fantasia, etc.
Estil de la font
L'estil de font especifica si el text ha de ser presentat utilitzant una cara normal, itàlica o oblíqua. La itàlica és la cara cursiva de la cara normal, però no tant cursiva com per a fer que sembli una cara d'escriptura. La oblíqua és una forma inclinada de la cara normal, i és més comunament utilitzada com a cara cursiva de la cara sans-serif. Aquesta definició evita haver d'etiquetar les cares normals lleument inclinades com a oblíqües, o les cares gregues normals com a itàliques.
Variant de la font
La variant de font indica si el text ha de ser presentat utilitzant els glyphs normals per als caràcters en minúscula o bé utilitzant els glyphs de caixa baixa per als caràcters en minúscula. Una font en particular pot contenir només glyphs de tipus normal, només glyphs de tipus de caixa baixa o ambdós tipus de glyphs; aquesta característica s'utilitza per a buscar una font apropiada i, si la font conté les dues variants, els glyphs apropiats.
Pes de la font
El pes de la font fa referència al gruix dels glyphs utilitzats per a presentar el text, relativament a les altres fonts de la mateixa família de fonts.
Elasticitat de la font
L'elasticitat de la font indica la quantitat desitjada de condensació o expansió dels glyphs utilitzats per a presentar el text, en relació a les altres fonts de la mateixa família de fonts.
Mida de la font
La mida de la font fa referència a la mida de la font mesurada des d'una línia base a una altra, quan aquesta està fixada de manera sòlida (en termes de CSS, això passa quan les propietats font-size i line-height tenen el mateix valor).

En totes les propietats, excepte font-size, els valors de longitut 'em' i 'ex' fan referència a la mida de la font de l'element actual. Per a font-size aquestes unitats de longitut fan referència a la mida de la font de l'element pare. Veieu l'apartat sobre les unitats de longitut del tema "Sintaxi i tipus bàsics de dades" per més informació.

Les propietats de font CSS s'utilitzen per descriure l'aparença desitjada del text d'un document. Els descriptors de font, per contrast, s'utilitzen per descriure les característiques de les fonts per tal que una font convenient pugui ser escollida per crear l'aparença desitjada. Per més informació sobre la classificació de les fonts, podeu consultar l'apartat sobre els descriptors de font.
2.2. Família de fonts: la propietat 'font-family'
La propietat font-family especifica una llista amb prioritat de noms de famílies de fonts i/o de noms de famílies genèriques. Per tractar el problema que una sola font pot no contenir els glyphs suficients per a visualitzar tots els caràcters d'un document, o que no totes les fonts es troben disponibles en tots els sistemes, aquesta propietat permet als autors especificar una llista de fonts, totes de la mateixa mida i estil, que són provades en seqüència per veure si contenen un glyph per a un caràcter determinat. Aquesta llista s'anomena "conjunt de fonts".

Hi ha dos tipus de noms de família de fonts:

<nom-de-família>
El nom d'una família de fonts a escollir. Exemples de noms de famílies de fonts són "Baskerville", "Heisi Mincho" i "Symbol. Els noms de famílies de fonts que contene espais blancs s'haurien de posar entre cometes. Si s'ometen les cometes, qualsevol caràcter d'espai blanc situat abans o després del nom de la font serà ignorat i qualsevol seqüència de caràcters d'espai blanc dins del nom de font es convertirà a un sol espai.

<família-genèrica>
Es defineixen les següents famílies genèriques: 'serif', 'sans-serif', 'cursive', 'fantasy' i 'monospace'. Consulteu l'apartat sobre famílies de fonts genèriques per a les descripcions d'aquestes famílies de fonts. Els noms de les famílies de fonts genèriques són paraules clau, i per tant no es poden posar entre cometes.

La més rica sintaxi de selectors de CSS2 pot ser utilitzada per crear tipografia sensible a l'idioma. Per exemple, alguns caràcters xinesos i japonesos s'unifiquen per a tenir el mateix codi numèric Unicode, encara que els glyphs abstractes no són els mateixos en els dos idiomes:
*:lang(ja-jp) { font: 900 14pt/16pt "Heisei Mincho W9", serif }
*:lang(zh-tw) { font: 800 14pt/16.5pt "Li Sung", serif }

Això selecciona qualsevol element que tingui l'idioma donat -japonès o xinès tradicional- i busca la font apropiada.

2.3. Estilització de la font: les propietats 'font-style', 'font-variant', 'font-weight' i 'font-stretch'
La propietat font-style busca les cares normal (de vegades anomenada 'roman' o 'upright'), itàlica i oblíqua d'una família de fonts.

En una font de majúscules petites (small-caps), els glyphs per a les lletres minúscules tenen una aparença similar als de les lletres majúscules, però amb un tamany més petit i proporcions lleugerament diferents. La propietat font-variant sol·licita aquest tipus de fonts per a bicameral (amb dos tipus de lletra, com en l'escriptura llatina). Aquesta propietat no té cap efecte visible per a les escriptures que són unicamerals (que només tenen un tipus de lletra, com en la majoria dels sistemes d'escriptura del món). Per a font-variant s'apliquen les mateixes consideracions que per a text-transform, en la mesura que aquesta propietat provoca que es transformi el text en majúscules.

La propietat font-weight especifica el pes de la font.

La propietat font-stretch selecciona una cara normal, condensada o extesa d'una família de fonts.
2.4. Mida de la font: les propietats 'font-size' i 'font-size-adjust'
La propietat font-size descriu la mida de la font quan està fixada de manera sòlida.

La propietat font-size-adjust permet als autors especificar, per a un element, un valor d'aspecte que preservarà la x-height de la font de primera opció en la font substituta. En les escriptures bicamerals (que disposen de dos tipus de lletra, les majúscules i les minúscules) la mida aparent subjectiva i la llegibilitat d'una font depenen no tant del valor de la seva font-size com del valor de la seva 'x-height' o, de manera més útil, del rati d'aquests dos valors, anomenat valor d'aspecte (mida de la font dividida per la x-height). Com més gran sigui el valor d'aspecte més provable serà que una font sigui llegible a mides petites. Inversament, les cares amb un valor d'aspecte més baix esdevindran il·legibles més ràpidament per sota d'una mida llindar donada que les cares amb un valor d'aspecte més alt.

La substitució directa de les fonts depenent només de la seva mida pot conduir a caràcters il·legibles. Per exemple, la popular font Verdana té un valor d'aspecte de 0.58; quan la mida de la font Verdana és de 100 unitats, la seva x-height és de 58 unitats. Com a comparació, la Times New Roman té un valor d'aspecte de 0.46. La Verdana aleshores tendirà a ser més llegible a mides petites que la Times New Roman. A la inversa, la Verdana es veurà sovint massa grossa si es substitueix per la Times New Roman a una mida determinada.
2.5. Propietat drecera de font: la propietat 'font'
La propietat font és, excepte en el cas que s'explica més avall, una propietat drecera per a assignar valors a les propietats individuals font-style, font-variant, font-weight, font-size, line-height i font-family en el mateix lloc d'un full d'estil.

Totes les propietats relatives a les fonts (totes les citades en el paràgraf anterior més font-stretch i font-size-adjust) se les reinicia als seus valors inicials. Aleshores, a aquelles propietats a les quals se'ls ha donat un valor explícit en la propietat drecera font, se'ls assignen aquests valors. Per raons de compatibilitat retroactiva, no és possible assignar valors diferents dels seus valors inicials a les propietats font-stretch i font-size-adjust mitjançant la propietat font; els valors per a aquestes dues propietats s'han d'assignar individualment.

La propietat font és "quasi" una propietat drecera ja que les fonts del sistema (per ex., la font utilitzada en els menús, la font utilitzada en les caixes de diàleg, etc.) només es poden especificar mitjançant aquesta propietat, i no amb font-family, per tant, font permet als autors fer alguna cosa més que assignar valors a les seves subpropietats. No obstant, a les propietats individuals com font-weight encara se'ls donen valors presos de la font del sistema, els quals poden ser més tard variats de manera independent.

Per més informació sobre el funcionament de la propietat font consulteu en aquest manual el llistat on es troben definides totes les propietats CSS2.
2.6. Famílies de fonts genèriques: 'serif', 'sans-serif', 'cursive', 'fantasy' i 'monospace'
Les famílies de fonts genèriques són un mecanisme de prevenció, un mitjà per a preservar qualsevol intent d'un autor de fulls d'estil del pitjor dels casos, en què cap de les fonts especificades pugui ser seleccionada. Per a un òptim control tipogràfic, hi ha uns noms determinats de fonts que s'haurien d'utilitzar en els fulls d'estil.

Totes 5 famílies de fonts genèriques existeixen, per definició, en totes les implementacions de CSS (no necessiten necessàriament correspondre's amb 5 fonts reals diferents). Els agents d'usuari haurien de proporcionar tries raonables per defecte per a les famílies de fonts genèriques, les quals expressin les característiques de cada família tant com sigui possible dins dels límits permesos per la tecnologia subjacent.

Seria bo que els agents d'usuari permetessin els usuaris seleccionar tries alternatives per a les fonts genèriques.

Font genèrica serif

Els glyphs de les fonts 'serif', tal com aquest terme s'utilitza en CSS, tenen pinzellades finals, acabaments brillants o punxaguts, o bé tenen finals realment perfilats (incloent els contorns gruixuts). Típicament, les fonts 'serif' estan espaiades proporcionalment. Sovint presenten una variació més gran entre els traços prims i els gruixuts que les fonts de la família de fonts genèrica 'sans-serif'. CSS utilitza el terme 'serif' per a aplicar-lo a una font que serveix per a qualsevol escriptura, encara que altres noms poden resultar més familiars per a determinades escriptures, tals com Mincho (per a la japonesa), Sung o Song (per a la xinesa), Pathang (per a la coreana). Qualsevol font que la seva descripció concordi amb la donada pot ser utilitzada per a representar la família genèrica 'serif'.

Són exemples de fonts que concorden amb aquesta descripció:

Fonts llatinesTimes New Roman, Bodoni, Garamond, Minion Web, ITC Stone Serif,
MS Georgia, Bitstream Cyberbit
Fonts greguesBitstream Cyberbit
Fonts ciríl·liquesAdobe Minion Cyrillic, Excelcior Cyrillic Upright, Monotype Albion 70,
Bitstream Cyberbit, ER Bukinst
Fonts hebreesNew Peninim, Raanana, Bitstream Cyberbit
Fonts japonesesRyumin Light-KL, Kyokasho ICA, Futo Min A101
Fonts aràbiguesBitstream Cyberbit
Fonts cherokeesLo Cicero Cherokee


Font genèrica sans-serif

Els glyphs de les fonts 'sans-serif', tal com el terme és utilitzat en CSS, tenen pinzellades finals que són planes -- sense cap brillantor, cap traç creuat, o cap altra ornamentació. Típicament, les fonts 'sans-serif' estan espaiades proporcionalment. Sovint tenen una petita variació entre els traços gruixuts i els prims, en comparació amb les fonts de la família 'serif'. CSS utilitza el terme 'sans-serif' per a aplicar-lo a una font que serveix per a qualsevol escriptura, encara que altres noms poden resultar més familiars per a determinades escriptures, tals com Gothic (per a la japonesa), Kai (per a la xinesa), Totum o Kodig (per a la coreana). Qualsevol font que la seva descripció concordi amb la donada pot ser utilitzada per a representar la família genèrica 'sans-serif'.

Són exemples de fonts que concorden amb aquesta descripció:

Fonts llatinesMS Trebuchet, ITC Avant Garde Gothic, MS Arial, MS Verdana,
Univers, Futura, ITC Stone Sans, Gill Sans, Akzidenz Grotesk, Helvetica
Fonts greguesAttika, Typiko New Era, MS Tahoma, Monotype Gill Sans 571,
Helvetica Greek
Fonts ciríl·liquesHelvetica Cyrillic, ER Univers, Lucida Sans Unicode, Bastion
Fonts hebreesArial Hebrew, MS Tahoma
Fonts japonesesShin Go, Heisei Kaku Gothic W5
Fonts aràbiguesMS Tahoma


Font genèrica cursive

Els glyphs de les fonts 'cursive', tal com s'utilitza aquest terme en CSS, generalment tenen, a més de les característiques de les itàliques, pinzellades unificadores o bé altres característiques de les cursives. Els glyphs es troben parcialment o completament connectats, i el resultat sembla més una escriptura manual feta amb un llapis o un bolígraf que no pas lletra impresa. Les fonts per a algunes escriptures, tals com les aràbigues, són quasi bé sempre cursives. CSS utilitza el terme 'cursive' per a aplicar-lo a una font que serveix per a qualsevol escriptura, encara que altres noms tals com Chancery, Brush, Swing i Script també s'utilitzen en els noms de font.

Són exemples de fonts que concorden amb aquesta descripció:

Fonts llatinesCaflisch Script, Adobe Poetica, Sanvito, Ex Ponto, Snell Roundhand,
Zapf-Chancery
Fonts ciríl·liquesER Architekt
Fonts hebreesCorsiva
Fonts aràbiguesDecoType Naskh, Monotype Urdu 507


Font genèrica fantasy

Les fonts 'fantasy', tal com aquest terme s'utilitza en CSS, són sobretot decoratives al mateix temps que encara contenen representacions de caràcters (contràriament a les fonts Pi o Picture, les quals no representen caràcters). Alguns exemples són:

Fonts llatinesAlpha Geometrique, Critter, Cottonwood, FB Reactor, Studz


Font genèrica monospace

L'únic criteri d'una font 'monospace' és que tots els glyphs tenen la mateixa amplada fixa. (Això pot fer que algunes escriptures, tals com les aràbigues, semblin més peculiars.) L'efecte és similar al d'una màquina d'escriure, i sovint és utilitzat per a representar fragments de codi informàtic de mostra.

Són exemples de fonts que concorden amb aquesta descripció:

Fonts llatinesCourier, MS Courier New, Prestige, Everson Mono
Fonts greguesMS Courier New, Everson Mono
Fonts ciríl·liquesER Kurier, Everson Mono
Fonts japonesesOsaka Monospaced
Fonts cherokeesEverson Mono
3. Selecció de fonts
La segona fase del mecanisme de fonts de CSS2 concerneix a la selecció que fa l'agent d'usuari d'una font, basant-se en les propietats de font especificades per l'autor, les fonts disponibles, etc. Els detalls més precisos es troben explicats en l'apartat sobre l'algorisme d'unificació de fonts.

Hi ha quatre possibles accions per a la selecció de fonts: unificació del nom, unificació intel·ligent, síntesi i descàrrega.

Unificació del nom de la font
En aquest cas l'agent d'usuari utilitza una font existent i accessible que tingui el mateix nom de família que la font que es demana. (Cal remarcar que l'aparença i les mètriques poden no coincidir necessàriament, si la font que ha utilitzat l'autor del document i la font del sistema client són de diferents fundicions). La informació d'unificació es restringeix a les propietats font de CSS, incloent-hi el nom de la família. Aquest és l'únic mètode utilitzat per CSS1.

Unificació intel·ligent de fonts
En aquest cas l'agent d'usuari utilitza la font existent i accessible que més coincideixi en aparença amb la font sol·licitada. (Cal remarcar que les mètriques poden no coincidir exactament). La informació d'unificació inclou informació sobre la mena de font (de text o de símbols), la naturalesa dels perfils o contorns, el pes, l'alçada de les majúscules, la x-height, la inclinació, etc.

Síntesi de la font
En aquest cas l'agent d'usuari crea una font que no només s'assembla el màxim possible en l'aparença amb la font sol·licitada sinó que, a més, hi coincideix en les mètriques. La informació de sintetització inclou la informació d'unificació i típicament requereix uns valors més precisos per als paràmetres que els que s'acostumen a necessitar per a d'altres esquemes d'unificació. En particular, la síntesi requereix mètriques d'amplada precises i informació sobre la substitució de caràcters a glyphs i sobre la posició, si totes les característiques de disposició de la font especificada s'han de preservar.

Descàrrega de la font
Finalment, l'agent d'usuari pot recuperar una font de la Xarxa. Això és similar al procés d'anar a buscar i agafar imatges, sons o applets de la Xarxa per a visualitzar-los en el document actual, i anàlogament pot causar algun retard abans que la pàgina pugui ser visualitzada.


La presentació progressiva és una combinació de la descàrrega i un dels altres mètodes: proporciona una font substituta temporal (utilitzant la unificació del nom, la unificació intel·ligent o la síntesi) per a permetre que el contingut pugui ser llegit mentre la font sol·licitada està sent descarregada. Un cop s'ha descarregat amb èxit la font real, aquesta reemplaça la font temporal, amb l'esperança de no haver de refrescar la pàgina.

Nota. La presentació progressiva requereix informació de les mètriques de la font a fi d'evitar una re-disposició del contingut quan la font real ha estat carregada i presentada. Aquesta informaciò mètrica és tan suficientment eloqüent que només s'hauria d'especificar com a molt un cop per a cada font d'un document.
3.1. Descripcions de fonts i @font-face
La descripció de fonts proporciona el pont entre l'especificació de font d'un autor i les dades de la font, que són les dades necessàries per a formatar el text i presentar els glyphs abstractes als quals corresponen els caràcters - els bitmaps o contorns escalables reals. Les fonts es referencien mitjançant les propietats dels fulls d'estil.

La descripció de la font s'afegeix a la base de dades de fonts i després s'utilitza per a seleccionar les dades rellevants de la font. La descripció de font conté descriptors tals com la localització de les dades de la font en la Xarxa i les tipificacions de les dades d'aquesta font. Els descriptors de font també són requerits per a unificar les propietats de font dels fulls d'estil amb dades particulars de la font. El nivell de detall d'una descripció de font pot variar des de tant sols el nom fins a una llista d'amplades de glyph.

Els descriptors de font es poden classificar en 3 tipus:

  1. aquells que proporcionen l'enllaç entre l'ús que fa CSS de les fonts i la descripció de font (aquests tenen els mateixos noms que les seves corresponents propietats de font CSS),
  2. la URI de la localització de les dades de la font,
  3. aquells que tipifiquen la font de manera suplementària, per a proporcionar un enllaç entre la descripció de font i les dades de la font.

Tots els descriptors de font s'especifiquen via una regla "at" @font-face. La forma general és:
	@font-face { <descripció-de-font> } 
on <descripció-de-font> té la forma:
	descriptor: valor;
	descriptor: valor;
	[...]
	descriptor: valor;
Cada regla @font-face especifica un valor per a cada descriptor de font, tant pot ser implícitament com explícitament. Aquells valors no donats explícitament en la regla prenen el valor inicial llistat amb cada descriptor en la seva especificació. Aquests descriptors s'apliquen només dins el context de la regla @font-face en la qual es troben definits, i no s'apliquen als elements del llenguatge del document. Així, no hi ha cap noció de a quins elements s'apliquen els descriptors, o de si els valors són heretats pels elements fill o no.

Els descriptors de font disponibles es descriuen en propers apartats d'aquest tema.

Per exemple, aquí la font 'Robson Celtic' està definida en un full d'estil contingut en un document HTML (http://site/fonts/rob-celt):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
  <HEAD>
    <TITLE>Test de fonts</TITLE>
    <STYLE TYPE="text/css" MEDIA="screen, print">
      @font-face {
        font-family: "Robson Celtic";
        src: url("http://site/fonts/rob-celt")
      }
      H1 { font-family: "Robson Celtic", serif }
    </STYLE>
  </HEAD>
  <BODY>
    <H1>Aquest títol es presenta utilitzant una Robson Celtic</H1>
  </BODY>
</HTML>
El full d'estil (dins l'element STYLE) conté una regla CSS que assigna a tots els elements H1 la família de fonts 'Robson Celtic'.

Una implementació de CSS1 buscaria en el client una font que el seu nom de família i altres propietats coincidissin amb la 'Robson Celtic' i, si acabés no trobant-la, utilitzaria la font de prevenció 'serif' específica de l'agent d'usuari (la qual existeix per definició).

Un agent d'usuari que implementi CSS2 primer examinarà les regles @font-face per a cercar una descripció de font que defineixi la 'Robson Celtic'. Aquest exemple conté una regla que ho fa. Encara que aquesta regla no conté moltes dades de la font, sí que té una URI on es pot anar a buscar la font i pot ser recuperada per a presentar aquest document. Les fonts descarregades no s'haurien de fer disponibles per a altres aplicacions. Si no es troba cap @font-face que hi unifiqui (que defineixi la font sol·licitada), l'agent d'usuari intentarà la mateixa unificació que un agent d'usuari que implementi CSS1.

Cal remarcar que si la font 'Robson Celtic' s'hagués instal·lat en el sistema client, això hauria causat que l'agent d'usuari afegís una entrada en la base de dades de fonts per a la còpia instal·lada tal com es descriu en l'apartat sobre l'algorisme d'unificació de fonts. La còpia instal·lada hauria estat unificada abans que la font descarregable de l'exemple.

Les implementacions de CSS1, les quals no enten la regla @font-face, trobaran les claus d'obertura ({) i ignoraran tot el que hi ha fins a les claus de tancament corresponents (}). Aquesta regla "at" està conforme amb el requeriment de CSS de l'anàlisi gramatical compatible en el futur. Els analitzadors gramaticals ignoraran aquestes regles sense ocasionar cap error.

El fet de tenir els descriptors de font separats de les dades de la font té un benefici més enllà de permetre la selecció i/o substitució de la font. Les restriccions sobre la protecció i replicació de les dades en els descriptors de font poden ser molt més dèbils que en les dades completes de la font. Així, pot ser possible instal·lar la definició de la font localment, o al menys tenir-la en la memòria caché local si es troba dins un full d'estil al qual es fa referència sovint; això no requerirà accedir a la definició sencera de la font a través de la Xarxa no més que una vegada per a cada font sol·licitada.

Si un descriptor de font es troba duplicat, la última ocurrència del descriptor guanya i la resta ha de ser ignorada.

A més, qualsevol descriptor que no sigui reconegut o útil per l'agent d'usuari ha de ser ignorat. Versions futures de CSS és possible que permetin descriptors addicionals per als propòsits d'una millor substitució, unificació o síntesi de fonts.
3.2 Descriptors per a seleccionar una font: 'font-family', 'font-style', 'font-variant', 'font-weight', 'font-stretch' i 'font-size'
Els següents descriptors tenen els mateixos noms que les seves corresponents propietats de font CSS2, i prenen un sol valor o una llista de valors separats per comes.

Els valors de dins de la llista són, excepte que estigui especificat explícitament, els mateixos que per a les corresponents propietats CSS2. Si hi ha només un valor, aquest és el valor que ha de ser unificat. Si hi ha una llista, qualsevol ítem de la llista constituirà una unificació. Si un descriptor s'omet en la @font-face, s'utilitzarà el valor inicial (el valor per defecte) del descriptor.


'font-family' (Descriptor)
Valors:[<nom-de-família> |<família-genèrica> ][,[<nom-de-família> | <família-genèrica> ]]*
Valor inicial:depèn de l'agent d'usuari
Grup de mitjans:visuals

Aquest és el descriptor per al nom de la família de fonts d'una font i pren els mateixos valors que la propietat font-family.


'font-style' (Descriptor)
Valors:all | [normal | italic | oblique ] [,[normal | italic | oblique]]*
Valor inicial:all
Grup de mitjans:visuals

Aquest és el descriptor per a l'estil d'una font i pren els mateixos valors que la propietat font-style, excepte que hi és permesa una llista de valors separats per comes.


'font-variant' (Descriptor)
Valors:[normal | small-caps] [,[normal | small-caps]]*
Valor inicial:normal
Grup de mitjans:visuals

Aquesta és la indicació CSS de si la cara és la variant de majúscules petites (small-caps) de la font. Pren els mateixos valors que la propietat font-variant excepte que hi és permesa una llista de valors separats per comes.

Nota. Les cares ciríl·liques pryamo poden estar etiquetades amb una font-variant de small-caps, la qual cosa oferirà una millor consistència amb les cares llatines (i la cara cursiva corresponent etiquetada amb font-style italic per la mateixa raó).


'font-weight' (Descriptor)
Valors:all | [normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900]
[, [normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900] ]*
Valor inicial:all
Grup de mitjans:visuals

Aquest és el descriptor per al pes relatiu d'una cara respecte a altres cares de la mateixa família de fonts. Pren els mateixos valors que la propietat font-weight amb tres excepcions:

  1. les paraules clau relatives ('bolder', 'lighter') no hi són permeses.
  2. hi és permesa una llista de valors separats per comes, per a fonts que contenen múltiples pesos.
  3. hi és permesa una paraula clau addicional, 'all', la qual significa que la font unificarà per a tots els pesos possibles; bé perquè conté múltiples pesos o bé perquè la cara només té un sol pes.


'font-stretch' (Descriptor)
Valors:all | [ normal | ultra-condensed | extra-condensed | condensed |
semi-condensed | semi-expanded | expanded | extra-expanded
| ultra-expanded ] [, [ normal | ultra-condensed | extra-condensed
| condensed | semi-condensed| semi-expanded | expanded
| extra-expanded | ultra-expanded] ]*
Valor inicial:normal
Grup de mitjans:visuals

Aquesta és la indicació CSS de la naturalesa condensada o expandida de la cara en relació a altres cares de la mateixa família de fonts. Pren els mateixos valors que la propietat font-stretch excepte que:



'font-size' (Descriptor)
Valors:all | <longitut> [, <longitut> ]*
Valor inicial:all
Grup de mitjans:visuals

Aquest és el descriptor per a les mides facilitades per aquesta font. Només les unitats absolutes de longitut hi són permeses, en contrast amb la propietat font-size, la qual permet tant les longituts i mides absolutes com les relatives. S'hi permet una llista de longituts absolutes separades per comes.

El valor inicial 'all' és adient per a la majoria de fonts escalables, per tant aquest descriptor és principalment per a ser utilitzat en una @font-face per a fonts bitmap, o bé fonts escalables dissenyades per a ser transformades a un rang restringit de mides de font.
3.3 Descriptors per a la qualificació de les dades d'una font: 'unicode-range'
El següent descriptor és opcional dins d'una definició de font, però s'utilitza per evitar provar o descarregar una font que no té els suficients glyphs per a presentar un caràcter en particular.

'unicode-range' (Descriptor)
Valors:<urang> [, <urang> ]*
Valor inicial:U+0-7FFFFFFF
Grup de mitjans:visuals

Aquest és el descriptor per al rang de caràcters de la ISO 10646 coberts per la font.


Els valors de <urang> s'expressen utilitzant nombres hexadecimals prefixats amb "U+", que corresponen a les posicions dels codis dels caràcters en la ISO 10646.

Per exemple, U+05D1 és el caràcter ISO 10646 'Hebrew letter bet'. Per als valors de fora del Pla Multillenguatge Bàsic (BMP, Basic Multilingual Plane), s'afegeixen dígits addicionals que corresponen al número en sí, també en hexadecimal, així: U+A1234 és el caràcter del Pla 10 en la posició hexadecimal de codi 1234. En aquests moments no s'han assignat caràcters fora del BMP. Els zeros davanters (per ex., 0000004D) són vàlids, però no obligatoris.

El valor inicial d'aquest descriptor cobreix no només el BMP sencer, el qual s'expressaria com U+0-FFFF, sinó també el repertori sencer de la ISO 10646. Així, el valor inicial diu que la font pot tenir glyphs per a qualsevol caràcter de la ISO 10646. El fet d'especificar un valor per al descriptor unicode-range proporciona informació per a fer cerques eficients, mitjançant la declaració d'un rang restringit en el qual la font pot tenir glyphs per als caràcters. No és necessari cercar aquesta font per a caràcters de fora d'aquest rang.

Els valors es poden escriure amb qualsevol nombre de dígits. Per a un sol dígit, s'assumeix que el caràcter '?' significa 'qualsevol valor' la qual cosa crea un rang de posicions de caràcters. Així, utilitzant un sol número:

unicode-range: U+20A7
cap grau de llibertat - indica la posició d'un sol caràcter (el símbol de la moneda "pesseta" espanyola)
unicode-range: U+215?
un grau de llibertat - cobreix el rang de 2150 a 215F (les fraccions)
unicode-range: U+00??
dos graus de llibertat - cobreix el rang de 0000 a 00FF (Latin-1)
unicode-range: U+E??
dos graus de llibertat - cobreix el rang de 0E00 a 0EFF (l'escriptura Lao)

Una parella de números en aquest format poden combinar-se amb el caràcter guió per a indicar rangs més llargs. Per exemple:

unicode-range: U+AC00-D7FF
el rang és de AC00 a D7FF (l'àrea de les síl·labes Hangul)

Es poden especificar rangs múltiples i discontínus, separats per una coma. Com amb altres llistes CSS separades per comes, qualsevol espai blanc abans o després de la coma s'ignora. Per exemple:

unicode-range: U+370-3FF, U+1F??
Això cobreix el rang de 0370 a 03FF (grec modern) més el de 1F00 a 1FFF (grec politònic antic).


unicode-range: U+3000-303F, U+3100-312F, U+32??, U+33??, U+4E00-9FFF, U+F9000-FAFF, U+FE30-FE4F
Això indica d'una manera molt precisa que aquesta (extremadament gran) font només conté caràcters xinesos de la ISO 10646, sense incloure-hi cap caràcter que sigui únicament japonès o coreà. El rang és de 3000 a 303F (símbols CJK i puntuació) més 3100 a 312F (Bopomofo) més 3200 a 32FF (lletres CJK i els mesos) més 3300 a 33FF (zona de compatibilitat CJK) més 4E00 a 9FFF (ideògrafs unificats CJK) més F900 a FAFF (ideògrafs de compatibilitat CJK) més FE30 a FE4F (formes de compatibilitat CJK).

Una representació més provable per a una típica font xinesa seria:

unicode-range: U+3000-33FF, U+4E00-9FFF


unicode-range: U+11E00-121FF
Aquesta font cobreix un registre proposat per a pictogrames asteques, cobrint el rang de 1E00 a 21FF en el pla 1.


unicode-range: U+1A00-1A1F
Aquesta font cobreix un registre proposat per a Irish Ogham que cobreix el rang de 1A00 a 1A1F.
3.4 Descriptor per a valors numèrics: 'units-per-em'
El següent descriptor especifica el nombre d'"unitats" per em; aquestes unitats poden ser utilitzades per altres diversos descriptors per a expressar vàries longituts, per tant es requereix 'units-per-em' si altres descriptors depenen d'ell.


'units-per-em' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per al nombre d'unitats de coordenades sobre el quadrat em, la mida de la graella de disseny sobre la qual es disposen els glyphs.
3.5 Descriptor per a la referenciació: 'src'
Aquest descriptor és obligatori per a referenciar les dades reals d'una font, tant si és descarregable com si es troba instal·lada localment.


'src' (Descriptor)
Valors:[ <uri> [format( <cadena> [, <cadena> ]*)] | <nom-de-cara-de-font> ]
[, <uri> [ format( <cadena> [, <cadena> ]*)] | <nom-de-cara-de-font> ]*
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és una llista amb prioritat de referències externes i/o de noms de cares de fonts instal·lades en local, separades per comes. La referència externa apunta a les dades de la font en la Xarxa. Això és necessari si la WebFont (font de la Xarxa) ha de ser descarregada. El recurs de la font pot ser un subconjunt de la font origen, per exemple, pot contenir només els glyphs necessaris per a la pàgina actual o per a un conjunt de pàgines.

La referència externa consisteix en una URI, seguida per una indicació opcional respecte el format de la font origen que ha de ser trobada en aquella URI, i aquesta informació hauria de ser utilitzada pels clients per evitar seguir links a fonts en formats que són incapaços d'usar. Tal com amb qualsevol referència en hipertext, hi pot haver altres formats disponibles, però el client té una millor idea de què hi hauria d'haver d'una manera més consistent que no pas la d'intentar analitzar gramaticalment extensions de fitxers en les URIs.

La indicació de format conté una llista de cadenes de format separades per comes que denoten formats de font ben coneguts. L'agent d'usuari reconeixerà el nom dels formats de font que suporta, i evitarà descarregar les fonts amb formats que no reconegui.

Una llista inicial de cadenes de format definits per l'especificació de CSS2 i que representen formats que és provable que siguin utilitzats per implementacions en vàries plataformes és:


CadenaFormat de fontExemples d'extensions comunes
"truedoc-pfr"TrueDoc™ Portable Font Resource.pfr
"embedded-opentype"Embedded OpenType.eot
"type-1"PostScript™ Type 1.pfb, .pfa
"truetype"TrueType.ttf
"opentype"OpenType, incloent TrueType Open.ttf
"truetype-gx"TrueType amb extensions GX 
"speedo"Speedo 
"intellifont"Intellifont 


Tal com amb altres URIs en CSS, la URI pot ser parcial, en tal cas es resol relativament a la localització del full d'estil que conté la @font-face.

El <nom-de-cara-de-font> instal·lat localment és el nom sencer d'una font instal·lada en local. El nom sencer és el nom de la font tal i com és reportada pel sistema operatiu i és el nom més provable per a ser utilitzat en els fulls d'estil de lector, en els fulls d'estil per defecte dels navegadors o possiblement en els fulls d'estil d'autor d'una intranet. Les ornamentacions tals com bold, italic i underline sovint s'utilitzen per a diferenciar cares dins una família de fonts. Per a més informació sobre noms sencers de font consulteu les notes de més avall.

La notació per a <nom-de-cara-de-font> és el nom sencer de la font, el qual ha d'estar entre cometes ja que pot contenir qualsevol caràcter, incloent-hi espais i puntuació, i també ha d'estar tancat entre "local(" i ")".

Exemples:

src: url("http://lloc/nose")
una URI sencera i cap informació sobre el format (o formats) de la font disponibles allà


src: local("BT Century 751 No. 2 Semi Bold Italic")
referencia a una cara en particular d'una font instal·lada localment


src: url("../fonts/bar") format("truedoc-pfr")
una URI parcial que té disponible una font en format TrueDoc


src: url("http://cgi-bin/bar?stuff") format("opentype", "intellifont")
una URI sencera, en aquest cas a un script, que pot generar dos formats diferents - OpenType i Intellifont


src: local("T-26 Typeka Mix"), url("http://site/magda-extra") format("type-1")
es donen dues alternatives, primerament una font instal·lada localment, i segon una font descarregable disponible en format Type 1.

L'accés a les fonts instal·lades localment és via el <nom-de-cara-de-font>. El nom de la cara de la font no és realment únic, tampoc és realment una plataforma o un format de font independent, però en aquests moments és la millor manera per a identificar les dades de fonts instal·lades localment. L'ús del nom de la cara de la font pot fer-se més acuradament proporcionant una indicació del complement del glyph requerit. Això es pot fer indicant el rang de posicions de caràcters de la ISO 10646 per als quals la font proporciona alguns glyphs (veieu el descriptor unicode-range).
3.6. Descriptors per a la unificació: 'panose-1', 'stemv', 'stemh', 'slope', 'cap-height', 'x-height', 'ascent' i 'descent'
Aquests descriptors són opcionals per a una definició CSS2, però poden ser utilitzats si l'autor desitja una unificació intel·ligent de fonts o un ajustament de la mida de la font.


'panose-1' (Descriptor)
Valors:[<enter> ]{10}
Valor inicial:0 0 0 0 0 0 0 0 0 0
Grup de mitjans:visuals

Aquest és el descriptor per al número Panose-1 i consisteix en deu enters separats per espais blancs. No hi és permesa una llista separada per comes per a aquest descriptor, perquè el sistema Panose-1 pot indicar que un rang de valors unifiquen. El valor inicial és zero, el qual significa "qualsevol", per a cada dígit PANOSE; totes les fonts unificaran amb el número PANOSE si s'utilitza aquest valor. L'ús del descriptor Panose-1 està fortament recomanat per a fonts llatines.


'stemv' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a l'amplada dels troncs verticals de la font. Si el valor és indefinit, el descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor, també s'ha d'utilitzar el descriptor units-per-em.


'stemh' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a l'amplada dels troncs horitzontals de la font. Si el valor és indefinit, aquest descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor, el descriptor units-per-em també s'ha d'utilitzar.


'slope' (Descriptor)
Valors:<número>
Valor inicial:0
Grup de mitjans:visuals

Aquest és el descriptor per a l'angle del traç vertical de la font.


'cap-height' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per al número de l'alçada dels glyphs de les majúscules de la font. Si el valor és indefinit, aquest descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor, el descriptor units-per-em també s'ha d'utilitzar.


'x-height' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a l'alçada dels glyphs de les minúscules de la font. Si el valor és indefinit aquest descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor aleshores el descriptor units-per-em també s'ha d'utilitzar. Aquest descriptor pot ser molt útil quan s'utilitza la propietat font-size-adjust perquè el càlcul del valor z de les fonts candidates requereix tant la mida de la font com la x-height; és per tant recomanat que s'inclogui aquest descriptor.


'ascent' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a l'alçada màxima no accentuada de la font. Si el valor és indefinit, el descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor també s'ha d'utilitzar el descriptor units-per-em.


'descent' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a la profunditat màxima no accentuada de la font. Si el valor és indefinit, el descriptor no s'utilitza per a la unificació. Si s'utilitza aquest descriptor, també s'ha d'utilitzar el descriptor units-per-em.
3.7. Descriptors per a la síntesi: 'widths', 'bbox' i 'definition-src'
Sintetitzar una font significa, com a mínim, la unificació de les mètriques d'amplada de la font especificada. Per tant, per a la síntesi, aquesta informació mètrica ha d'estar disponible. De manera similar, la presentació progressiva requereix mètriques d'amplada a fi d'evitar el refluxe del contingut quan la font real ha estat carregada. Encara que els següents descriptors són opcionals per a una definició CSS2, alguns són obligatoris si es desitja dur a terme la síntesi (o una presentació progressiva). Si la font real hauria d'estar disponible, la font substituta hauria de ser reemplaçada per la font real. Qualsevol d'aquests descriptors que es troben presents seran utilitzats per a proporcionar una millor o més ràpida aproximació de la font sol·licitada.

D'aquests descriptors, els més importants són els descriptors 'widths' i 'bbox', els quals s'utilitzen per a prevenir el refluxe del text si la font real hauria d'estar disponible. A més, els descriptors del conjunt de descriptors utilitzats per a la unificació poden ser utilitzats per proporcionar una millor síntesi de l'aparença de la font real.

'widths' (Descriptor)
Valors:[<urang> ]? [<número> ]+ [,[<urang> ]? <número> ]+]
Valor incial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a les amplades dels glyphs. El valor és una llista de valors <urang> separats per comes, cada un seguit per una o més amplades de glyphs. Si s'utilitza aquest descriptor, el descriptor units-per-em també s'ha d'utilitzar.


Si s'omet el <urang>, s'assumeix un rang de U+0-7FFFFFFF el qual cobreix tots els caràcters i els seus glyphs. Si no s'han donat suficients amplades de glyphs, l'última de la llista és replicada per a que cobreixi aquest urang. Si es proporcionen massa amplades, les extra (les que sobren) s'ignoren.

Exemples:

? amplades: U+4E00-4E1F 1736 1874 1692
? amplades: U+1A?? 1490, U+215? 1473 1838 1927 1684 1356 1792
1815 1848 1870 1492 1715 1745 1584 1992 1978 1770

En el primer exemple es dóna un rang de 32 caràcters, de 4E00 a 4E1F. El glyph corresponent al primer caràcter (4E00) té una amplada de 1736, el segon té una amplada de 1874 i el tercer, 1692. Com que no s'han donat suficients amplades, l'última es replica per a cobrir la resta del rang especificat. El segon exemple fixa una sola amplada, 1490, per a tot un rang de 256 glyphs i després amplades explícites per a un rang de 16 glyphs.

Aquest descriptor no pot descriure múltiples glyphs que corresponguin a un sol caràcter, o lligadures de múltiples caràcters. Així, aquest descriptor pot només ser utilitzat per a escriptures que no tenen formes contextuals o lligadures obligatòries. Tot i amb això és molt útil en aquestes situacions. Les escriptures que requereixen una correspondència de caràcters a glyphs d'un-a-molts o de molts-a-molts no poden, en el present, utilitzar aquest descriptor per a permetre la síntesi de la font, fins i tot si encara poden utilitzar la descàrrega de la font o la unificació intel·ligent.

'bbox' (Descriptor)
Valors:<número>, <número>, <número>, <número>
Valor incial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a la caixa de límits maximals de la font. El valor és una llista d'exactament 4 números separats per comes que especifiquen, en ordre, la x inferior esquerra, la y inferior esquerra, la x superior dreta i la y superior dreta, de la caixa limitadora de la totalitat de la font.


'definition-src' (Descriptor)
Valors:<uri>
Valor inicial:indefinit
Grup de mitjans:visuals

Els descriptors de font es poden trobar dins de la definció de la font en el full d'estil o bé ser facilitades des d'un recurs extern de definicions de fonts identificat per una URI. La darrera aproximació pot reduir el trànsit de la xarxa quan múltiples fulls d'estil referencien les mateixes fonts.
3.8. Descriptors per a l'alineació: 'baseline', 'centerline', 'mathline', i 'topline'
Aquests descriptors opcionals s'utilitzen per a alinear sèries de diferents escriptures l'una amb l'altra.


'baseline' (Descriptor)
Valors:<número>
Valor inicial:0
Grup de mitjans:visuals

Aquest és el descriptor per a la línia base inferior d'una font. Si a aquest descriptor se li dóna un valor diferent del valor per defecte (no zero), el descriptor units-per-em també ha de ser utilitzat.


'centerline' (Descriptor)
Valors:<número>
Valor incial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a la línia base central d'una font. Si el valor és indefinit, l'agent d'usuari pot fer servir vàries heurístiques tals com el punt mitjà dels valor ascent i descent. Si s'utilitza aquest descriptor, el descriptor units-per-em també ha de ser utilitzat.


'mathline' (Descriptor)
Valors:<número>
Valor incial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a la línia base matemàtica d'una font. Si el valor és indefinit, l'agent d'usuari pot utilitzar la lína base central. Si s'utilitza aquest descriptor, el descriptor units-per-em també ha de ser utilitzat.


'topline' (Descriptor)
Valors:<número>
Valor inicial:indefinit
Grup de mitjans:visuals

Aquest és el descriptor per a la línia base superior d'una font. Si és indefinit, l'agent d'usuari pot utilitzar un valor aproximat com l'ascent. Si s'utilitza aquest descriptor, el descriptor units-per-em també s'ha d'utilitzar.
3.9. Exemples
Donada la següent llista de fonts:
Swiss 721 light         light & light italic 	
Swiss 721               roman, bold, italic, bold italic 	
Swiss 721 medium        medium & medium italic 	
Swiss 721 heavy         heavy & heavy italic 	
Swiss 721 black         black, black italic, & black #2 	
Swiss 721 Condensed     roman, bold, italic, bold italic 	
Swiss 721 Expanded      roman, bold, italic, bold italic 	
Es podrien utilitzar les següents descripcions de fonts per a fer-les susceptibles de ser descarregades:

@font-face {
    font-family: "Swiss 721";
    src: url("swiss721lt.pfr"); /* Swiss 721 light */
    font-style: normal, italic;
    font-weight: 200;
}

@font-face {
    font-family: "Swiss 721";
    src: url("swiss721.pfr"); /* La Swiss 721 regular */
}

@font-face {
    font-family: "Swiss 721";
    src: url("swiss721md.pfr"); /* Swiss 721 medium */
    font-style: normal, italic;
    font-weight: 500;
}

@font-face {
    font-family: "Swiss 721";
    src: url("swiss721hvy.pfr"); /* Swiss 721 heavy */
    font-style: normal, italic;
    font-weight: 700;
}

@font-face {
    font-family: "Swiss 721";
    src: url("swiss721blk.pfr"); /* Swiss 721 black */
    font-style: normal, italic;
    font-weight: 800,900; /* cal remarcar l'interessant
			     problema que la italic de pes 900
			     no existeix */
}

@font-face {
    font-family: "Swiss 721";
    src: url(swiss721.pfr); /* La Swiss 721 Condensed */
    font-stretch: condensed;
}

@font-face {
    font-family: "Swiss 721";
    src: url(swiss721.pfr); /* La Swiss 721 Expanded */
    font-stretch: expanded;
}
4. Característiques de les fonts
4.1. Introducció de les característiques de les fonts
En aquest apartat es llisten les característiques de les fonts que es troba que són útils per a la unificació, la síntesi i la descàrrega client-side, per a les heterogènies plataformes que accedeixen a la Xarxa. Les dades poden ser útils per a qualsevol mitjà que necessiti fonts de la Xarxa utilitzant altres mètodes que no sigui la inserció física de les dades de la font dins el mitjà.

Aquestes característiques s'utilitzen per a caracteritzar les fonts. No són específiques de CSS, o dels fulls d'estil. En CSS cada característica és descrita per un descriptor de font. Aquestes característiques es podrien també correspondre amb nodes VRML, o estructures d'aplicació CGM o una API de Java, o llenguatges alternatius de fulls d'estil. Les fonts recuperades per un mitjà i emmagatzemades en la caché d'un proxy podrien ser reutilitzades per un altre mitjà, estalviant el temps de descàrrega i l'ample de banda de la xarxa, si s'utilitzen a través d'un sistema comú de característiques de fonts.

Una llista no exhaustiva d'exemples d'aquests tipus de mitjans inclou:

4.2. Nom sencer de la font
El nom sencer d'una font és el nom sencer d'una cara en particular d'una família de fonts. Típicament inclou una varietat de qualificadors textuals no estandaritzats o d'adornaments afegits al nom de la família de fonts. També pot incloure un nom de fundició o una abreviació, sovint prefixada al nom de la família de fonts. Només s'utilitza per a referir-se a les fonts instal·lades en local, perquè el format del nom adornat pot variar d'una plataforma a una altra. Ha d'estar entre cometes.

Per exemple, el nom de la família de la font TrueType i el nom PostScript pot direrir en l'ús dels caràcters d'espai, de puntuació i en l'abrevació d'algunes paraules (per ex., per a satisfer les restriccions de varis intèrprets de sistema o d'impressores sobre les longituts dels noms). Per exemple, els espais no són permesos en un nom PostScript, però són comuns en molts noms sencers de fonts. La taula de noms TrueType pot també contenir el nom PostScript, el qual no té espais.

El nom de la definició de la font és important perquè és l'enllaç a qualsevol de les fonts instal·lades en local. És important que el nom sigui robust, tant respecte a la plataforma com a la independència de l'aplicació. Per aquesta raó, el nom hauria de ser un que no fos específic de l'aplicació o del llenguatge.

La solució ideal seria tenir un nom que identifiqués únicament cada col·lecció de dades de font. Aquest nom no existeix a la pràctica actual per a les dades de les fonts. Les fonts amb el mateix nom de cara poden variar en un número de descriptors. Alguns d'aquests descriptors, tals com diferents complements de glyphs en la font, poden ser insignificants si els glyphs necessitats es troben en la font. Altres descriptors, tals com diferents mètriques d'amplada, fan incompatibles les fonts amb el mateix nom. No sembla possible definir una regla que sempre identifiqui incompatibilitats però que no impedeixi l'ús d'una còpia en local perfectament adient de les dades de la font amb un nom donat. Per tant, només el rang de caràcters de la ISO 10646 seran usats per a qualificar les unificacions per al nom de cara de la font.

Com que una meta principal del nom de cara de la font en la definció de la font és permetre a un agent d'usuari determinar quan és que hi ha una còpia en local de les dades de la font especificada, el nom de cara de la font ha de ser un nom que es trobarà en totes les còpies legítimes de les dades de la font. D'altra manera, es pot genera un innecessari trànsit per la Xarxa degut a les unificacions fallides per a la còpia local.
4.3. Unitats de coordenades del quadrat em
Alguns valors, tals com les mètriques d'amplada, s'expressen en unitats que són relatives a un quadrat abstracte l'alçada del qual és la distància desitjada entre línies d'escrit de la mateixa mida. Aquest quadrat s'anomena el quadrat em i és la graella de disseny sobre la qual es defineixen les línies dels glyphs. El valor d'aquest descriptor especifica en quantes unitats està dividit el quadrat em. Valors comuns són, per exemple, 250 (Intellifont), 1000 (Type 1) i 2048 (TrueType, TrueType GX i OpenType).

Si no s'ha especificat aquest valor, esdevé impossible saber què significa cap de les mètriques de la font. Per exemple, una font té uns glyphs en minúscules d'alçada 450; una altra en té uns de més petits d'alçada 890! Els números són realment fraccions; la primera font té 450/1000 i la segona té 890/2048 la qual és evidentment més petita.
4.4. Línia base central
La línia base central dóna la posició en el quadrat em de la línia base central. La línia base central és utilitzada per les escriptures ideogràfiques per a l'alineació, tal com la línia base inferior és utilitzada per les escriptures llatina, grega i ciríl·lica.
4.5. Codificació de la font
Tant si és explícitament com implícitament, cada font té una taula associada a ella, la taula de codificació de la font, que diu quin caràcter representa cada glyph. Aquesta taula també rep el nom de vector de codificació.

En realitat, moltes fonts contenen diversos glyphs per al mateix caràcter. La decisió de quin d'aquests glyphs s'hauria d'utilitzar depèn tant de les regles del llenguatge com de la preferència dels dissenyador.

En àrab, per exemple, totes les lletres tenen quatre (o dues) formes diferents, depenent de si la lletra s'utilitza a l'inici d'una paraula, al mig, al final o bé en solitari. És el mateix caràcter en tots els casos, i d'aquesta manera hi ha només un caràcter en el document font, però quan s'imprimeix, es veu diferent cada vegada.

També hi ha fonts que deixen que el dissenyador gràfic trïi entre vàries formes alternatives proporcionades. Desgraciadament, CSS2 no proporciona encara els mitjans per a seleccionar aquestes alternatives. Actualment, sempre és la forma per defecte l'escollida d'entre totes aquestes fonts.
4.6. Nom de família de fonts
Especifica la porció del nom de la cara de la font corresponent al nom de família. Per exemple, el nom de família de la Helvetica-Bold és Helvetica i el nom de família de la ITC Stone Serif Semibold Italic és ITC Stone Serif. Alguns sistemes tracten els adornaments relacionats amb les cares condensades o expandides com si fossin part del nom de família.
4.7. Amplades dels glyphs
És una llista d'amplades, sobre la graella de disseny, per al glyph que correspon a cada caràcter. La llista està ordenada pel número de codi de la ISO 10646. L'especificació de les amplades no pot ser útil quan més d'un glyph corresponen al mateix caràcter o quan hi ha lligadures obligatòries.
4.8. Amplada del tronc horitzontal
Aquest valor fa referència al tronc dominant de la font. Hi pot haver dues o més amplades dissenyades. Per exemple, els troncs verticals principals dels caràcters romans diferiran dels troncs prims en la "M" i "N" serif, a més hi pot haver diferents amplades per als caràcters de les majúscules i les mínúcules en la mateixa font. També, tant si és per error com per disseny, tots els troncs poden tenir amplades lleugerament diferents.
4.9. Alçada dels glyphs de les majúscules
Aquesta mesura és la coordenada y de la part superior de les lletres majúscules planes en les escriptures llatina, grega i ciríl·lica, mesurada des de la línia base. Aquest descriptor no és necessàriament útil per a fonts que no contenen cap glyph d'aquestes escriptures.
4.10. Alçada dels glyphs de les minúscules
Aquesta mesura és la coordenada y de la part superior de les lletres minúscules no accentuades i no ascendents en les escriptures llatina, grega i ciríl·lica, mesurada des de la línia base. S'utilitzen les lletres amb la part superior plana ignorant qualsevol zona de correcció òptica. Això és utilitzat normalment com a rati de les alçades de les minúscules a les alçades de les majúscules com a mitjà per a comparar famílies de fonts:


I·lustració de la x-height


Aquest descriptor no és útil per a fonts que no contenen cap glyph d'aquestes escriptures. Com que les alçades de les lletres minúscules i majúscules sovint s'expressen com a rati per a comparar diferents fonts, pot ser útil per a fixar les alçades de les majúscules i de les minúscules al mateix valor per a les escriptures unicamerals tals com la hebrea, on per a text barrejat llatí i hebreu, els caràcters hebreus es fixen típicament a una alçada a mig camí entre les alçades de les majúscules i les minúscules de la font llatina:


Alçada dels caràcters hebreus


4.11. Línia base inferior
Dóna la posició en el quadrat em de la línia base inferior. La línia base inferior és utilitzada per les escriptures llatina, grega i ciríl·lica per a l'alineació, tal com la línia base superior és utilitzada per les escriptures derivades del sànscrit.
4.12. Línia base matemàtica
Dóna la posició en el quadrat em de la línia base matemàtica. La línia base matemàtica és utilitzada pels símbols matemàtics per a l'alineació, tal com la línia base inferior és utilitzada per les escriptures llatina, grega i ciríl·lica.
4.13. Caixa de límits maximals
La caixa de límits maximals és el rectangle més petit que engloba la forma que resulta si tots els glyphs de la font es situessin amb els seus orígens coincidint, i després es pintessin.

Si una font descarregable dinàmicament ha estat generada agafant un subconjunt d'una font pare, la bbox hauria de ser la de la font pare.
4.14. Alçada màxima no accentuada
Aquesta mesura, sobre el quadrat em, és des de la línia base al punt més alt assolit per algun glyph, excloent qualsevol accent o marca diacrítica:

4.15. Profunditat màxima no accentuada
Aquesta mesura, sobre el quadrat em, és desde la línia base al punt més baix assolit per algun glyph, excloent qualsevol accent o marca diacrítica:

4.16. Número Panose-1
El Panose-1 és una tecnologia de classificació i unificació de les fonts estàndard industrials TrueType. El sistema PANOSE consisteix en un conjunt de deu números que categoritzen els atributs clau d'una cara d'impremta llatina, un procediment de classificació per a crear aquests números, i un software Mapper (mapejador) que determina la unificació de fonts més perfecta possible donat un conjunt de cares d'impremta. El sistema podria també ser utilitzat, amb alguna modificació, per al grec i el ciríl·lic, però no és adient per a les escriptures unicamerals i ideogràfiques (hebreu, armeni, àrab, xinès/japonès/coreà).
4.17. Rang de caràcters de la ISO 10646
Indica el repertori de glyphs de la font en relació a la ISO 10646 (Unicode). Com que es troba disseminat (la majoria de les fonts no cobreixen la ISO 10646 sencera) aquest descriptor llista blocs o rangs que sí que cobreixen (no es fa cap promesa de cobriment complet) i s'utiliza per a eliminar fonts no adients (les que no tindran els glyphs requerits). No indica que la font tingui definitivament aquests glyphs, només que val la pena baixar la font i mirar-se-la. Veieu la ISO 10646 per a informació sobre documents útils

Aquest mètode és extensible a la localització futura de caràcters en l'Unicode, sense canvi de sintaxi i sense invalidar el contingut existent.

Els formats de les fonts que no inclouen aquesta informació, explícitament o indirectament, poden encara utilitzar aquesta característica, però el valor ha de ser suplit per l'autor del document o del full d'estil.

Hi ha altres classificacions dins de les escriptures, tals com el sistema Monotype i un sistema d'escriptura proposat per la ISO.

A causa d'això, en l'especificació de CSS2 (i, per tant, en aquest manual) s'utilitza la classificació dels repertoris de glyphs pel rang dels caràcters de la ISO 10646 que pot ser representat amb una font en particular. Aquest sistema és extensible per a cobrir qualsevol localització futura.
4.18. Línia base superior
Dóna la posició, en el quadrat em, de la línia base superior. La linia base superior és utilitzada per les escriptures derivades del sànscrit per a l'alineació, tal com la línia base inferior s'utilitza per a les escriptues llatina, grega i ciríl·lica.
4.19. Amplada dels troncs verticals
És l'amplada del troncs verticals (o més o menys verticals) dels glyphs. Aquesta informació està sovint lligada a una indicació, i pot no ser accessible directament en alguns formats de font. L'amidament hauria de ser pel tronc vertical dominant de la font perquè hi pot haver diferents agrupacions de troncs verticals (per ex., un de principal i un de pes més lleuger, tal com per a una M o N majúscules).
4.20. Angle del traç vertical
És l'angle, en graus mesurats en el sentit contrari de les agulles del rellotge des de la vertical dels traços verticals dominants de la font. El valor és negatiu per a les fonts que s'inclinen cap a la dreta, com fan majoria de les fonts itàliques. Aquest descriptor pot també ser especificat per a les fonts oblíqües, les inclinades, les d'escriptura, i en general per a qualsevol font els traços verticals de la qual no siguin precisament verticals. Un valor diferent de zero no indica en sí mateix una font itàlica.
5. Algorisme d'unificació de fonts
L'especificació de CSS2 extén l'algorisme donat en l'especificació de CSS1. Aquest algorisme es redueix a l'algorisme de l'especificació de CSS1 quan els fulls d'estil de l'autor i del lector no contenen cap regla @font-face.

La unificació dels descriptors amb les cares de les fonts s'ha de fer amb molta cura. Els descriptors s'unifiquen en un ordre ben definit per a assegurar que els resultats d'aquest procés d'unificació siguin tan consistents com sigui possible a través dels agents d'usuari (assumint que la mateixa biblioteca de cares de fonts i de descriptors de font es presenta per a cada un d'ells). Aquest algorisme pot ser optimitzat, sempre que una implementació es comporti com si l'algorisme hagués estat seguit exactament.

  1. L'agent d'usuari construeix (o accedeix a) una base de dades dels descriptors pertinents de les cares de font de totes les fonts de les quals n'és conscient l'agent d'usuari. Si hi ha dues fonts amb exactament els mateixos descriptors, una d'elles s'ignora. L'agent d'usuari pot tenir consciència d'una font perquè:


  2. En un element donat i per a cada caràcter d'aquell element, l'agent d'usuari assembla les propietats de font aplicables a aquell element. Utilitzant el conjunt complet de propietats, l'agent d'usuari utilitza la propietat font-family per a triar una família de fonts com a intent. Així, la unificació sobre el nom d'una família tindrà èxit abans que la unificació sobre algun altre descriptor. Les propietats restants es testen contra la família d'acord amb els criteris d'unificació descrits amb cada descriptor. Si hi ha unificacions per a totes les propietats restants aleshores aquella és la cara de font que unifica per a l'element donat.


  3. Si no hi ha cap cara de font que unifiqui dins del descriptor font-family processat pel pas 2, els agents d'usuari que implementen la unificació intel·ligent poden procedir a examinar altres descriptors tals com la x-height, les amplades dels glyphs i el panose-1 per a identificar una família de fonts diferent com a intent. Si hi ha unificacions per a tots els descriptors restants, aleshores aquella és la cara de font que unifica per a l'element donat. El descriptor font-family que es reflecteix dins les propietats CSS2 és la família de fonts que es va sol·licitar, i no el nom que pugui tenir la font unificada intel·ligentment. Els agents d'usuari que no implementen la unificació intel·ligent es considera que fallaran en aquest pas.


  4. Si no hi ha cap cara de font que unifiqui dins del descriptor font-family processat pel pas 3, els agents d'usuari que implementin la descàrrega de fonts poden procedir a examinar el descriptor src de la cara de font tentativa identificada en el pas 2 o 3, per a identificar un recurs de la xarxa que es trobi disponible i del format correcte. Si hi ha unificacions per a tots els descriptors restants aleshores aquella serà la cara de font que unifiqui per a l'element donat i l'agent d'usuari pot intentar descarregar aquest recurs de font. L'agent d'usuari pot escollir bloquejar-se durant aquesta descàrrega o pot escollir procedir al següent pas mentre la font es descarrega. Els agents d'usuari que no implementin la descàrrega de fonts, o que no estiguin connectats a cap xarxa, o en els que les preferències de l'usuari han deshabilitat la descàrrega de fonts, o si el recurs demanat es troba indisponible per qualsevol raó, o si la font descarregada no pot ser utilitzada per qualsevol raó, es considera que fallaran en aquest pas.


  5. Si no hi ha cap cara de font que unifiqui dins del descriptor font-family processat pel pas 3, els agents d'usuari que implementin la síntesi de fonts poden procedir a examinar altres descriptors tals com x-height, les amplades dels glyphs i el panose-1 per a identificar una família de fonts diferent com a tentativa per a la síntesi. Si hi ha unificacions per a tots els descriptors restants, aleshores aquella és la cara de font que unifica amb l'element donat i pot començar la síntesi de la font. Els agents d'usuari que no implementen la síntesi de fonts es considera que fallaran en aquest pas.


  6. Si tots els passos 2, 3, 4 i 5 fallen, i si hi ha una següent font-family alternativa en el conjunt de fonts, aleshores cal repetir des del pas 2 amb la següent font-family alternativa.


  7. Si hi ha una cara de font que unifica però no conté el/s glyph/s per al/s caràcter/s actual/s, i si hi ha un font-family alternatiu en els conjunts de fonts, aleshores cal repetir des del pas 2 amb el següent font-family alternatiu. El descriptor unicode-range pot ser utilitzat per a eliminar ràpidament de consideració aquelles cares de font que no tinguin els glyphs correctes. Si el descriptor unicode-range indica que una font conté alguns glyphs en el rang correcte, pot ser examinada per l'agent d'usuari per a veure si té aquell en particular.


  8. Si no hi ha cap font seleccionada de la família de fonts en el pas 2, aleshores cal utilitzar el valor de font-family heretat o depenent d'agent d'usuari, i cal repetir des del pas 2, utilitzant la unificació millor que pot obtenir-se dins d'aquesta font. Si un caràcter en particular no pot ser visualitzat utilitzant aquesta font, l'agent d'usuari hauria d'indicar que un caràcter no es visualitza (per exemple, utilitzant el glyph de 'caràcter perdut').


  9. Els agents d'usuari que implementen la presentació progressiva i tenen descàrregues pendents de fonts, poden, un cop s'hagi dut a terme satisfactòriament la descàrrega, utilitzar la font descarregada com a una família de fonts. Si la font descarregada no té alguns dels glyphs que la font temporalment progressiva sí que contenia, la font descarregada no s'utilitza per a aquell caràcter i la font temporal es continua utilitzant.


Nota. Aquest algorisme pot ser optimitzat per a evitar haver de revisitar les propietats CSS2 per a cada caràcter.

Les regles d'unificació per descriptor del pas 2 són les següents::

  1. font-style es prova primer. 'italic' es satisfarà si hi ha alguna cara en la base de dades de fonts de l'agent d'usuari que estigui etiquetada amb la paraula clau de CSS 'italic' (preferentment) o bé amb 'oblique'. D'altra manera, els valors han de ser unificats exactament o font-style fallarà.


  2. font-variant es prova després. 'normal' unifica amb una font no etiquetada com a 'small-caps'; 'small-caps' unifica (1) amb una font etiquetada com a 'small-caps', (2) amb una font en la qual es sintetitzen les majúscules petites (small-caps), o (3) amb una font on totes les lletres en minúscula es reemplacen per les lletres en majúscula. Una font de majúscules petites (small-caps) pot ser sintetitzada escalant electrònicament les lletres majúscules d'una font normal.


  3. font-weight s'unifica després, mai fallarà.


  4. font-size ha d'unificar dins d'un marge de tolerància depenent de l'agent d'usuari. (Típicament, les mides de les fonts escalables s'arrodoneixen al píxel sencer més proper, mentre que la tolerància per a les fonts bitmap podria ser tan gran com del 20%.) Els càlculs més avançats, per ex., mitjançant els valors 'em' d'altres propietats, es basen en el valor de font-size que s'utilitza, i no en el que està especificat.
5.1. Correspondència dels valors dels pesos de les fonts amb els noms de les fonts
Els valors de la propietat font-weight es donen en una escala numèrica en la qual el valor '400' (o 'normal') correspon a la cara de text "normal" per a aquella família. El nom de pes associat amb aquella cara serà típicament Book, Regular, Roman, Normal o, de vegades, Medium.

L'associació d'altres pesos dins d'una família amb els valors numèrics de pes es desitja només per a preservar l'ordenació dels pesos dins d'aquella família. Els agents d'usuari han de fer correspondre els noms amb els valors d'una manera que preservi l'ordre visual; una cara que correspongui a un valor no ha de ser més prima que les cares que corresponen a valors més baixos. No hi ha cap garantia de com un agent d'usuari farà correspondre les cares de les fonts dins d'una família als valors dels pesos. No obstant, les següents heurístiques diuen com es fa aquesta assignació en els casos generals:

No hi ha cap garantia que hi haurà una cara més fosca per a cada un dels valors de font-weight; per exemple, algunes fonts és possible que només tinguin una cara normal i una de gruixuda, altres poden tenir vuit pesos de cara diferents.

Els dos següents exemples mostren correspondències típiques:

  • Se suposen quatre pesos en la família "Rattlesnake", des del més lleuger al més fosc: Regular, Medium, Bold, Heavy.

    Primer exemple de correspondència de pesos de font:
    Cares disponiblesAssignacionsOmplir els espais
    "Rattlesnake Regular"400100, 200, 300
    "Rattlesnake Medium"500 
    "Rattlesnake Bold"700600
    "Rattlesnake Heavy"800900


  • Se suposen sis pesos en la família "Ice Prawn": Book, Medium, Bold, Heavy, Black, ExtraBlack. Cal remarcar que en aquesta instància l'agent d'usuari ha decidit no assignar un valor numèric a "Ice Prawn ExtraBlack".

    Segon exemple de correspondència de pesos de font:
    Cares disponiblesAssignacionsOmplir els espais
    "Ice Prawn Book"400100, 200, 300
    "Ice Prawn Medium"500 
    "Ice Prawn Bold"700600
    "Ice Prawn Heavy"800 
    "Ice Prawn Black"900 
    "Ice Prawn ExtraBlack"(cap) 
  • 5.2. Exemples d'unificació de fonts
    El següent exemple defineix una cara de font específica, Alabama Italic. També es proporcionen una URI origen i una descripció de font panose per a recuperar una font truetype de servidor. Els descriptors font-weight i font-style es proporcionen per a descriure la font. La declaració diu que el pes també unificarà amb qualsevol demanda de dins del rang de 300 a 500. La família de fonts és Alabama i el nom adornat de la font és Alabama Italic:
    	@font-face {
    	   src: local("Alabama Italic"),
    	   url(http://www.fonts.org/A/alabama-italic)
    	        format("truetype");
    	   panose-1: 2 4 5 2 5 4 5 9 3 3;
    	   font-family: Alabama, serif;
    	   font-weight:   300, 400, 500;
    	   font-style:  italic, oblique;
    	}
    
    El següent exemple defineix una família de fonts. Es proporciona una sola URI per a recuperar les dades de la font. Aquest fitxer de dades contindrà múltiples estils i pesos per a la font anomenada. Un cop una d'aquestes definicions @font-face hagi estat referenciada, les dades es trobaran en la cache de l'agent d'usuari per a altres cares que utilitzin la mateixa URI:
    	@font-face {
    	   src: local("Helvetica Medium"),
    	        url(http://www.fonts.org/sans/Helvetica_family)
    	        format("truedoc");
    	   font-family: "Helvetica";
    	   font-style: normal
    	}
    
    	@font-face {
    	   src: local("Helvetica Oblique"),
    	        url("http://www.fonts.org/sans/Helvetica_family")
    	        format("truedoc");
    	   font-family: "Helvetica";
    	   font-style: oblique;
    	   slope: -18
    	}
    
    El següent exemple agrupa tres fonts físiques en una de virtual amb una cobertura extensa. En cada cas el nom adornat de la font ve donat pel descriptor src per a permetre que les versions instal·lades en local s'utilitzin preferencialment si es troben disponibles. Una quarta regla apunta a una font amb la mateixa cobertura, però continguda en un sol recurs:
    	@font-face {
    	   font-family: Excelsior;
    	   src: local("Excelsior Roman"),
    	        url("http://site/er")
    	        format("intellifont");
    	   unicode-range: U+??; /* Latin-1 */
    	}
    
    	@font-face {
    	   font-family: Excelsior;
    	   src: local("Excelsior EastA Roman"),
    	        url("http://site/ear")
    	        format("intellifont");
    	   unicode-range: U+100-220; /* Latin Extended A i B */
    	}
    
    	@font-face {
    	   font-family: Excelsior;
    	   src: local("Excelsior Cyrillic Upright"),
    	        url("http://site/ecr")
    	        format("intellifont");
    	   unicode-range: U+4??; /* Ciríl·lic */
    	}
    
    	@font-face {
    	   font-family: Excelsior;
    	   src: url("http://site/excels")
    	        format("truedoc");
    	   unicode-range: U+??,U+100-220,U+4??;
    	}
    
    Aquest proper exemple podria trobar-se en el full d'estil per defecte d'un agent d'usuari. Implementa la família de fonts genèrica de CSS2 serif fent-la correspondre a una àmplia varietat de fonts serif que podrien existir en vàries plataformes. No es dóna cap mètrica ja que això varia a través de les possibles alternatives:
    	@font-face {
    	   src: local("Palatino"),
    	        local("Times New Roman"),
    	        local("New York"),
    	        local("Utopia"),
    	        url("http://somewhere/free/font");
    	   font-family: serif;
    	   font-weight: 100, 200, 300, 400, 500;
    	   font-style: normal;
    	   font-variant: normal;
    	   font-size: all
    	}
    
    Tancar
    Pàgina Principal
    Introducció al Manual d'HTML Dinàmic
    Glossari
    Referències























    HTML 4.0
    Introducció al manual d'HTML 4.0
    Taules
    Formularis
    Objectes, imatges i applets
    Scripts
    Informació de l'idioma i sentit del text
    Frames
    Nous elements
    Elements menyspreuats i obsolets
    Fulls d'estil
    Nous atributs de l'HTML 4.0
    Índex d'atributs nous
    Índex d'atributs menyspreuats
    DTD
    Annexe












    Introducció als CSS
    Introducció als CSS2 i al manual
    Propietats CSS2
    Fulls d'estil audibles
    Model de caixa
    Sintaxi i tipus bàsics de dades
    Model de formatat visual
    Detalls del model de formatat visual
    Assignar valors de propietats, la cascada i l'herència
    Interfície d'usuari
    Efectes visuals
    Text
    Taules
    Fonts
    Contingut generat, numeració automàtica i llistes
    Colors i fons
    Selectors
    Tipus de mitjans
    Mitjans paginats
    Suport de CSS2
    Annexe




    Introducció al DOM
    DOM Nivell 1 - Nucli
    DOM Nivell 1 - HTML
    Articles sobre el DOM






















    Programació en DHTML
    Demos