Stahovatelné fonty poprvé
Nastavení fontů je jedním z úskalí webdesignu. Obvykle se použije některý z fontů, o němž se dá předpokládat, že bude na většině systémů, doplní se několika alternativami a pro jistotu se přidá i font generický. Pak už můžeme jen doufat, že cílový prohlížeč zobrazí naši stránku v přijatelné formě. Ale co na to jít jinak? Proč raději ke stránce nepřidat fonty v externím souboru a pak je využívat bez ohledu na systém?
V následujícím dvojdílném článku se budu zabývat problematikou stahovatelných fontů. V první části si řekneme, k čemu jsou vlastně dobré, a ukážeme si základní CSS2 konstrukce pro práci s nimi.
K čemu je to dobré
Nejlépe hned na začátek je vhodné si položit otázku, k čemu a zdali vůbec potřebujeme stahovatelné fonty. Moje odpověď bude možná trochu překvapivá, ale v normálních případech je jejich použití naprostá zbytečnost. Kaskádové styly a prohlížeče nám poskytují relativně silný mechanismus, jak textu na stránce přiřadit správný font včetně záchranné brzdy v podobě generických fontů. Sice si výsledkem nikdy nemůžete být stoprocentně jisti, ale v drtivé většině případů se stránka zobrazí tak, jak předpokládáte.
Přesto se domnívám, že existují výjimečné situace, ve kterých se stahovatelný font může hodit. Jde například o stránky v cizím jazyce se speciálními znaky, které přesto chcete zpřístupnit třeba i českým uživatelům. Samozřejmě nemůžete příliš předpokládat, že by tito uživatelé měli nainstalovaný příslušný font, nebo se jen chcete pojistit. V takovém případě mohou stahovatelné fonty přijít docela vhod. A takto je třeba rozumět i tomuto článku. Nejde v žádném případě o samospásnou technologii, která najednou vyřeší všechny problémy s fonty, ale spíše o postup, který není špatné mít na paměti a zvážit jeho použití ve speciálních případech.
Podpora stahovatelných fontů
S podporou stahovatelných fontů to není zrovna nejveselejší, překvapivě (vzhledem k implementaci dalších vlastností CSS2) je podporuje pouze Internet Explorer od verze 4.0. Proto je vždy nutno brát ohled i na ostatní prohlížeče a nadefinovat i jiné fonty.
CSS2 a pravidlo font-face
K definici nového fontu se používá CSS2 @pravidlo (at-rule) @font-face
(pokud se chcete dozvědět více o CSS2 @pravidlech, přečtěte si článek CSS2 – at rules aneb pravidla zavináče). Jeho teoretický zápis vypadá následovně:
@font-face {
descriptor: value;
descriptor: value;
…
descriptor: value;
}
CSS2 používá pojem descriptor (popisovač) pro vlastnosti, kterými se nadefinuje nový font. Jde o mechanismus, jak daný font co nejlépe popsat, tj. zadefinovat umístění souboru, název fontu a jeho vlastnosti. Některé určitě znáte z kaskádových stylů jako vlastnosti pro nastavení fontu daného textu, jiné jsou úplně nové.
Základní deskriptory podporované Internet Explorerem
Definice umístění fontu
Základem definice je kromě @pravidla @font-face
povinný deskriptor src
, který určuje, kde se nachází fyzický soubor s fontem. Jeho hodnotu bude nejčastěji tvořit známá CSS funkce url()
. Mějme například soubor s fontem uložený v adresáři fonty:
@font-face {
src: url(„fonty/mujfont.eot“);
…
}
Doporučení CSS2 dokonce dovoluje jako hodnotu deskriptoru src
předat i jméno již lokálně nainstalovaného fontu pomocí zápisu src: local(jmeno_fontu)
. Explorer ovšem tento postup nepodporuje.
Nyní se naskýtá dost zásadní otázka, jaké soubory s fonty lze vůbec použít. Přestože doporučení počítá s více typy souborů, Explorer podporuje pouze formát .eot (Embedded OpenType). O tom, co je tento formát zač a jak do něj konvertovat své fonty, se dočtete v druhém díle tohoto článku.
Formát souboru můžete přímo explicitně zadefinovat v hodnotě deskriptoru src
: src: url("fonty/mujfont.eot") format("embedded-opentype");
. Jednotlivá klíčová slova jsou součástí CSS2 doporučení. Pro IE je ovšem tento zápis zbytečný, protože podporuje pouze jediný formát, .eot. Navíc tomuto zápisu nerozumí a celou definici fontu považuje za neplatnou!
Nastavení jména fontu
Prozatím se nám podařilo zadefinovat cestu k souboru s fontem. Ještě je nutno určit jméno, pod kterým bude náš font vystupovat ve světě kaskádových stylů. K tomu slouží vám určitě známý deskriptor font-family
, jehož hodnotu zde tvoří řetězec představující jméno fontu. Chtějme například, aby se na již zmiňovaný font mujfont.eof dalo odkazovat jménem muj_font:
@font-face {
src: url(„fonty/mujfont.eot“);
font-family: muj_font;
}
Nyní již tento název můžete normálně používat ve svých kaskádových stylech, takto např. přiřadíme všem nadpisům první úrovně písmo ze souboru mujfont.eot: h1 {font-family: muj_font;}
. Pokud byste chtěli použít víceslovný název, nezapomeňte, že jej všude musíte dát do uvozovek.
Důležité je řešení konfliktních situací. Může totiž dojít k případu, že vámi nadefinované jméno již bude používat nějaký font nainstalovaný přímo v systému. Dle doporučení by měl systémový font dostat přednost před stáhnutým. Jak asi správně tušíte, Explorer to udělá přesně naopak a použije font zadefinovaný @pravidlem @font-face
.
Další informace o fontu
Podle MSDN podporuje IE pouze výše zmíněné deskriptory. Zdá se však, že ve skutečnosti rozumí i následujícím dvěma. V každém případě tedy nebude na škodu, když je do definice fontu umístíte také.
Deskriptor font-style
má stejný význam jako stejnojmenná CSS vlastnost. Popisuje, jaký styl písmen font obsahuje pomocí tří klíčových slov normal, italic, oblique
. Narozdíl od zmíněné vlastnosti může obsahovat i více než jedno klíčové slovo. Můžete tak například zadefinovat font, který obsahuje normální znaky i kurzívu: font-style: normal, italic;
. Také lze nově použít klíčové slovo all
značící, že font obsahuje znaky ve všech stylech.
Podobně pracuje i deskriptor font-weight
definující tloušťku fontu. Může nabývat jedné nebo více hodnot ze seznamu normal, bold, 100, 200, ..., 900
. I zde můžete využít klíčového slova all
, které znamená, že se font může vykreslit v jakékoli tloušťce.
Další deskriptory definované v CSS2
Následující kapitola je spíše informativní, stručně v ní pro přehled popíšu několik dalších deskriptorů, které jsou definovány v CSS2 doporučení, ale Explorer jim nerozumí a nepoužívá je.
Deskriptory analogické k CSS vlastnostem
Deskriptor font-variant
poskytuje informaci o tom, zda font obsahuje i kapitálky. Může nabývat jedné nebo obou hodnot normal, small-caps
.
Pro popis velikosti fontu se používá deskriptor font-size
. Narozdíl od stejnojmenné vlastnosti může nabývat pouze seznamu absolutních hodnot nebo klíčového slova all
značícího, že se font může použít v libovolné velikosti, což je asi nejčastější případ.
Poslední deskriptor, který zde zmíním, je font-stretch
, který určuje, nakolik může být font roztažen respektive smrštěn. I zde tvoří hodnotu seznam ze slov normal, ultra-condensed, extra-condensed, condensed, semi-condensed, semi-expanded, expanded, extra-expanded, ultra-expanded
nebo klíčové slovo all
.
Další deskriptory
Deskriptorů definovaných v doporučení CSS2 je samozřejmě mnohem více, pokrývají například problematiku Unicode, syntézu fontů nebo porovnávání fontů. Je ale zbytečné, abych se zde o nich rozepisoval, protože v současnosti neexistuje žádný prohlížeč, pro který by měly nějaký význam. Pokud máte o tuto problematiku hlubší zájem, vše potřebné najdete v CSS2 doporučení.
Příště se podíváme na @pravidlo @font-face
v praxi a ztratíme nervy u nástroje WEFT firmy Microsoft, kterým lze vytvářet soubory s fonty typu .eot
.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Umělá inteligence v IT
27. září 2023
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024