Dnes se podíváme na práci s různými typy médií v kaskádových stylech.
16.8.2004 13:00 | Vasek | přečteno 18554×
Jednou z nejvýznamnějších vlastností kaskádových stylů je možnost určit formu prezentace dokumentu zvlášť pro různé druhy výstupních medií, např. obrazovku, papír, hlasový syntetizér, výstup v braillově písmu apod.
Tyto výstupní zařízení se označují jako média a v CSS se rozdělují do několika skupin. Jednotlivé typy médií někdy vyžadují různé hodnoty jednotlivých vlastností (např. velikost fontu pro obrazovku je větší než velikost fontu pro tisk). Některé vlastnosti kaskádových stylů jsou vyhrazeny pouze určitým mediím(např. cue-before lze použít jen pro hlasový výstup).
V současnosti lze v kaskádových stylech používat tyto typy médií:
Na velikosti písmen v názvech typů medií nezáleží.
Jednotlivá média jsou navzájem neslučitelná. Každý klient musí při zpracování dokumentu podporovat pouze jediný typ médií. Ale není vyloučeno, že klienty mohou obsahovat více modulů (režimů), z nichž podporuje každý jiný typ medií (ale vždy jen jeden jediný).
U každé CSS vlastnosti je stanoveno, pro jaký typ médií se může použít. Jelikož však mnoha vlastnostem odpovídá více médií, vznikly skupiny médíí, které se uvádí u jednotlivých vlastností. Příslušnou vlastnost lze použít pro všechny média patřící do uvedené skupiny. V kaskádových stylech je nadefinováno několik skupin médií podle různých hledisek.
Existují dva způsoby určení platnosti kaskádového stylu pro konkrétní médium:
Jazyky dokumentů rozpoznávají atribut media tagů link nebo style. Hodnotu tohoto atributu je seznam médií oddělených od sebe čárkou.
<link rel="stylesheet" type="text/css" media="print, handheld" href="foo.css"> <style type="text/css" media="print"> ... </style>
Dle specifikace HTML má atribut media výchozí hodnotu screen, ale prohlížeče se většinou chovají, jako by byla nastavena hodnota all. V XHTML je výchozí hodnotou all.
At-pravidlo @media určuje typy cílových medií pro sady pravidel následujících za pravidlem @media. Pokud chceme pravidlo @media použít pro více medií odělujií se čárkou. Příkazem @media označíme část tabulky stylů jako platnou pro dané médium.
@media print { body { font-size: 10pt; } } @media screen { body { font-size: 12pt; } } @media print, screen { body { line-height: 1.2; } }
Uvnitř bloku @media není možné použít import další tabulky stylů pomocí příkazu @import. Namísto toho lze použít definování médií přímo v příkazu @import.
@import url("styl_tisk.css") print;
Kaskádové styly podporují šikoké spektrum médií, a do budoucna se dá počítat ještě s dalším rozšířením. V praxi se ale můžete setkat jen s typem screen, print, a ve výjimečných případech ještě aural, braille, ostatní typy médií se v podstatě nepoužívají z důvodu jejich nejednoznačné definice v CSS (resp. z důvodu nejednoznačných definic práce s nimi), řešení těchto nedostatků má přinést připravovaná verze 3 kaskádových stylů.