CSS (5.) - Média

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

Typy médií

V současnosti lze v kaskádových stylech používat tyto typy médií:

all
všechny typy zařízení
aural
zvukový výstup na hlasovém syntezátoru
braille
braillská dotyková zařízení (braillský řádek)
embossed
stránka zobrazená plastickým tiskem na braillské tiskárně
handheld
obrazovka kapesního počítače (nejčastěji malý monochromatický displej a malá rychlost přenosu dat)
print
stránky vytištěné na tiskárně nebo dokumenty zobrazené na obrazovce v režimu tiskového náhledu
projection
promítané prezentace (velkoplošné projektory či zpětné projektory)
screen
obrazovka počítače (s podporou zobrazení barev a bitmapové grafiky)
tty
neproporční znakový výstup (dálnopisy, terminály atd.)
tv
televizní obrazovka a podobná zařízení (společnými vlastnostmi je nízké rozlišení, omezené možnosti posouvání obrazu a možnost použití barev a zvuku)

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ý).

Skupiny médíí

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.

Způsob definice stylu pro určité médium

Existují dva způsoby určení platnosti kaskádového stylu pro konkrétní médium:

Specifikování média v dokumentu

Jazyky dokumentů rozpoznávají atribut media tagů link nebo style. Hodnotu tohoto atributu je seznam médií oddělených od sebe čárkou.

Příklady:
<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-pravidla

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.

Příklady:
  @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.

Příklady:
  @import url("styl_tisk.css") print; 

Závěr

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

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=349