Interval.cz
CSS2 - mluvenΘ styly

DneÜnφ, spφÜe teoretick², zßv∞reΦn² Φlßnek bude trochu netypick². Pravd∞podobn∞ nebudete mφt p°φle₧itost si nov∞ zφskanΘ v∞domosti n∞kde vyzkouÜet. TakΘ budou chyb∞t tabulky pou₧itelnosti v danΘm prohlφ₧eΦi. ╪eΦ toti₧ bude o mluven²ch stylech (aural style sheets). Symbolicky se tak rozlouΦφme se serißlem, kter² se sna₧il ukßzat progresivnφ cesty ve webdesignu.

Jak si mluvenΘ styly nejlΘpe p°edstavit? Asi nejΦast∞ji jsou kaskßdovΘ styly pou₧φvßny na formßtovßnφ textu a nastavenφ pφsma. Pomocφ font-family lze urΦit konkrΘtnφ font nebo zvolit font generick² a vlastnostφ font-size ovlivnφte jeho velikost. Samoz°ejm∞ takov²ch vlastnostφ existuje celß °ada a jejich vzßjemn²mi kombinacemi lze zφskat vizußlnφ podobu textu, kterß autorovi vyhovuje.

A nynφ si p°edstavte, ₧e si text neprohlφ₧φte na obrazovce, ale pomocφ ΦteΦky (hlasovΘho syntezßtoru) si jej nechßte p°eΦφst. A mo₧nß vßs napadne, ₧e by nebylo ·pln∞ od v∞ci n∞jak "formßtovat" i tento hlasov² v²stup. Nap°φklad kontrolovat hlasitost, pou₧φvat pro nadpisy ₧ensk² hlas a pro odstavce mu₧sk² a za d∙le₧it²mi v∞tami nechat na chvφli pauzu.

A p°esn∞ k tomu slou₧φ mluvenΘ styly. Podφvejme se tedy, co nßm vÜe umo₧≥ujφ.

CSS2 a mluvenΘ styly

Norma CSS2 definuje pro mluvenΘ styly vlastnφ t°φdu mΘdia aural. Mluven² styl tedy m∙₧eme zapsat do bloku @media aural {}. Nenφ to vÜak nutnΘ, nebo¥ vlastnosti pat°φcφ do mno₧iny mluven²ch styl∙ nijak neovliv≥ujφ samotn² vzhled. Lze je bez problΘmu psßt p°φmo mezi ostatnφ klasickΘ vlastnosti.

╚tenφ elementu

Nastavenφ hlasu

Zßkladnφ vlastnostφ je voice-family, kterß je podobnß svΘmu textovΘmu prot∞jÜku font-family. Jejφ hodnota je tvo°ena seznamem Φßrkami odd∞len²ch hlasov²ch font∙. Podobn∞ jako p°i vizußlnφm formßtovßnφ m∙₧ete nejd°φve uvΘst n∞kolik konkrΘtnφch hlasov²ch font∙ a pro jistotu na konec p°idat i font generick². ╚ist∞ na ukßzku zkusme nastavit hlavnφm nadpis∙m, aby byly Φteny ₧ensk²m hlasem: h1 {voice-family: Anna, "angry wife", female;}. Pokud na p°φsluÜnΘm za°φzenφ nejsou nalezeny hlasy Anna nebo angry wife (oba dva jsem si pochopiteln∞ vymyslel), je pou₧it generick² hlas female. DalÜφmi generick²mi hlasy, kterΘ W3C p°edpoklßdß, jsou male, child, tedy mu₧sk² a d∞tsk² hlas.

DalÜφ d∙le₧itou charakteristikou, kterß vßs mo₧nß napadla, je hlasitost zvukovΘho v²stupu. Ta se urΦuje pomocφ vlastnosti volume. M∙₧eme ji nastavit bu∩ Φφselnou hodnotu od 0 do 100, kdy 0 p°edstavuje nejmenÜφ slyÜitelnou hlasitost, 100 nejvyÜÜφ bezpeΦnou ·rove≥, nebo pojmenovan²mi hodnotami x-soft, soft, medium, loud, x-loud. TakΘ lze pou₧φt hodnotu silent pro ·plnΘ ticho nebo relativnφ procentußlnφ hodnotu.

N∞kter² text by takΘ mohl b²t Φten jinak rychle. K tomu slou₧φ vlastnost speech-rate. Jejφ hodnota se udßvß ve slovech za minutu. TakΘ se mohou pou₧φt pojmenovanΘ hodnoty x-slow, slow, medium, fast, x-fast a relativnφ hodnoty slower, faster.

DalÜφ zajφmavou hodnotou je pitch, urΦujφcφ v²Üku (frekvenci) hlasu v hertzφch. Typick² mu₧sk² hlas mß kolem 120Hz, zatφmco ₧ensk² a₧ 210Hz. TakΘ lze nastavit rozsah frekvence pomocφ vlastnosti pitch-rate v intervalu 0-100. Pokud chceme zφskat monot≤nnφ hlas, zvolφme nulovou hodnotu, naopak hodnota okolo 50 poskytuje normßlnφ lidskou modulaci.

DalÜφ mo₧nostφ mluven²ch styl∙ je nastavenφ p°φzvuku (stress). Toho docφlφme pomocφ vlastnosti stress. TaktΘ₧ nab²vß hodnoty z intervalu 0-100, hodnota 50 p°edstavuje normßlnφ p°ednes v angliΦtin∞.

No a koneΦn∞ vlastnost richness ovliv≥uje bohatost (jas) hlasu. Pr∙m∞rnß hodnota 50 p°edstavuje normßlnφ p°ednes. VyÜÜφ hodnota pak z°eteln² jasn² hlas a ni₧Üφ zase klidn∞jÜφ a laskav∞jÜφ.

Zp∙sob Φtenφ textu

AΦ se to mo₧nß na prvnφ pohled nemusφ zdßt, existuje vφce mo₧nostφ, jak p°eΦφst dan² text.

Vlastnostφ speak lze nastavit, zda se mß text Φφst normßln∞, nebo hlßskovat. Docφlφme toho pomocφ hodnot normal, spell-out. DalÜφ hodnotou m∙₧e b²t none p°ikazujφcφ, ₧e se text nemß Φφst v∙bec a mß b²t p°eskoΦen. VÜimn∞te si, ₧e existuje v²znamn² rozdφl mezi volume: silent; a speak: none;. Pro prvnφ nastavenφ platφ, ₧e text sice nebude p°eΦten, ale z∙stane pomlka odpovφdajφcφ jeho dΘlce. Naopak druhß mo₧nost zajistφ, ₧e dan² text bude p°eskoΦen ·pln∞. Analogicky se chovajφ visibility: hidden; a display: none; p°i vizußlnφ prezentaci dat.

DalÜφ vlastnost ovliv≥ujφcφ zp∙sob Φtenφ je speak-punctuation a urΦuje Φtenφ interpunkΦnφch znamΘnek. Standardn∞ (hodnota none) Φteny nejsou, ale jsou namφsto nich vlo₧eny pomlky. N∞kdy ovÜem m∙₧eme po₧adovat, aby interpunkΦnφ zamΘnka Φtena byla (nap°φklad p°i v²pisech k≤du programovacφho jazyka). Toho docφlφme hodnotou code.

TakΘ se nßm m∙₧e hodit nastavenφ Φtenφ Φφsel. N∞kdy budeme chtφt Φφst celΘ Φφslo jako hodnotu (151 jako sto padesßt jedna), jindy zase po jednotliv²ch Φφslech (151 jako jedna p∞t jedna). K tomu nßm poslou₧φ vlastnost speak-numeral, kterß m∙₧e nab²vat hodnot digits (Φtenφ po jednotliv²ch Φφslech) nebo continuous (Φtenφ dohromady).

Generovan² obsah

Podobn∞ jako p°i vizußlnφ prezentaci m∙₧eme obΦas po₧adovat vlo₧enφ urΦit²ch zvuk∙ nebo pomlk na zaΦßtek, respektive konec elementu.

U n∞kter²ch element∙ (nap°φklad u nadpis∙) by bylo zajistΘ vhodnΘ, aby jejich p°eΦtenφ p°edchßzela pomlka. Tohoto chovßnφ docφlφme pomocφ vlastnostφ pause-before, pause-after, pause. UrΦit∞ vßs nep°ekvapφ, ₧e vlastnostφ pause-before nastavφte pomlku p°ed a vlastnostφ pause-after pomlku za elementem. Vlastnost pause p°edstavuje zkrßcenΘ volßnφ obou p°edchozφch. Mohou nab²vat ΦφselnΘ hodnoty (v sekundßch a milisekundßch, jednotky s, ms) a nebo se procentußln∞ vztahovat k vlastnosti speech-rate.

N∞kdy budeme chtφt vlo₧it p°ed, respektive za element n∞jak² zvukov² soubor, nikoliv pouze pomlku. Dosßhneme toho pomocφ vlastnostφ cue-before, cue-after, cue. Jejich hodnotu tvo°φ adresa zvukovΘho souboru. I zde je vlastnost cue zkrßcen²m ekvivalentem cue-before, cue-after.

╚ist∞ pro procviΦenφ nynφ nastavme vÜem nadpis∙m druhΘ ·rovn∞, aby je p°edchßzela pomlka dΘlky 1 sekunda a aby se po p°eΦtenφ p°ehrßl soubor dong.wav:

h2
{pause-before: 1s;
cue-after: url("dong.wav");}

Pokud se na jednΘ stran∞ elementu setkajφ ob∞ vlastnosti pro vlo₧enφ pomlky a souboru, je nejd°φve realizovßna pomlka a a₧ potΘ p°ehrßn zvukov² soubor nßsledovan² obsahem samotnΘho elementu.

Zvukovß kulisa p°i Φtenφ

Vlastnost play-during je analogickß k vlastnosti background vizußlnφho zobrazenφ. Nastavuje toti₧ zvuk, kter² bude p°ehrßn (nebo p°ehrßvßn) v pr∙b∞hu Φtenφ elementu. Zßkladnφ hodnotu tvo°φ adresa a jmΘno samotnΘho zvukovΘho souboru. K tomu m∙₧ete p°idat klφΦovΘ slovo mix, kterΘ znaΦφ, ₧e zadan² zvuk je vmixovßn do zvukovΘ kulisy rodiΦovskΘho elementu. Pokud toto klφΦovΘ slovo nenφ uvedeno, ztichne zvuk rodiΦovskΘho souboru a je p°ehrßvßn pouze aktußlnφ soubor.

DalÜφ klφΦovΘ slovo repeat prohlφ₧eΦi na°izuje, aby byl dan² zvukov² soubor p°ehrßvßn stßle dokola. Toto je samoz°ejm∞ nutnost v p°φpad∞, ₧e zvukov² soubor je kratÜφ ne₧ samotnß stopß₧ elementu. KlφΦovΘ slovo auto urΦuje, ₧e se mß pokraΦovat v p°ehrßvßnφ zvuku rodiΦovskΘho elementu. Pokud chcete vypnout jakoukoliv kulisu (tedy i kulisu rodiΦovskΘho elementu), provedete to hodnotou none.

Nßsledujφcφ styl zp∙sobφ, ₧e pod elementem strong bude stßle dokola p°ehrßvßn soubor alert.wav a pod elementem em soubor warning.wav, kter² bude vmixovßn do zvuku rodiΦovskΘho elementu:

strong {play-during: url("alert.wav") repeat;}
em {play-during: url("warning.wav") mix repeat;}

Sm∞r zvuku

Poslednφ dv∞ vlastnosti azimuth, elevation umo₧≥ujφ nastavenφ sm∞ru, ze kterΘho bude zvuk p°ichßzet. Pochopiteln∞ ne ka₧d² systΘm bude schopen takov² po₧adavek splnit, ale i obyΦejnΘ stereo se dokß₧e alespo≥ ΦßsteΦn∞ s tφmto ·kolem vypo°ßdat.

Vlastnost azimuth urΦuje horizontßlnφ sm∞r zvuku. Nastavuje se ve stupnφch (jednotka deg) v rozsahu -360deg a₧ 360deg. ┌hel 0deg popisuje p°φm² Φelnφ sm∞r, 180deg zase sm∞r zezadu. TakΘ lze pou₧φt pojmenovanΘ hodnoty left-side, far-left, left, center-left, center, center-right, right, far-right, right-side a relativnφ hodnoty leftwards, rightwards.

Pro nastavenφ sm∞ru zvuku ve vertikßlnφm sm∞ru slou₧φ vlastnost elevation. Jejφ hodnotu tvo°φ ·hel od -90deg do 90deg, 0 deg op∞t znaΦφ p°φm² sm∞r zep°edu. I zde lze pou₧φt pojmenovanΘ hodnoty below, level, above a relativnφ vyjßd°enφ higher, lower.

╚tenφ tabulky

Pokud se hovo°φ o problematice XHTML a CSS, jsou tabulky v∞Φn²m evergreenem. Nejinak je tomu p°i nastavovßnφ mluven²ch styl∙. Podφvejme se na nßsledujφcφ krßtkou tabulku:

<table>
<tr>
  <th>&nbsp;</th>
  <th>v²d∞lek</th>
  <th>v²daje</th>
</tr>

<tr>
  <th class="header">vΦera</th>
  <td>50,-</td>
  <td>500,-</td>
</tr>

<tr>
  <th class="header">dneska</th>
  <td>10,-</td>
  <td>1500,-</td>
</tr>
</table>

Nabφzφ se vφce mo₧nostφ, jak ji p°eΦφst. ProblΘm je toti₧ v zßhlavφch tabulky. Majφ se p°eΦφst za ka₧dou datovou polo₧kou nebo jen jednou? To lze nastavit vlastnostφ speak-header. Styl .header {speak-header: once;} p°inutφ prohlφ₧eΦ p°eΦφst tabulku p°ibli₧n∞ takto:

vΦera v²d∞lek padesßt v²daje p∞tset
dneska v²d∞lek deset v²daje patnßctset

Zatφmco druhß mo₧nost nastavenφ .header {speak-header: always;} zp∙sobφ toto:

vΦera v²d∞lek padesßt vΦera v²daje p∞tset
dneska v²d∞lek deset dneska v²daje patnßctset

Vlastnost speak-header tedy m∙₧e nab²vat jednΘ z hodnot once, always. Dovoluje nßm urΦit, zdali se mß urΦitΘ zßhlavφ tabulky Φφst pouze jednou nebo znovu p°ed ka₧dou datovou polo₧kou.

VÜe jednou konΦφ

A nejinak je to s tφmto serißlem. Doufßm, ₧e vßs tento spφÜe teoretick² Φlßnek nijak neotrßvil a naopak zv²Üil vßÜ zßjem o normu CSS2. Stejn∞ tak v∞°φm, ₧e vßm cel² serißl ukßzal novΘ cesty a v²chodiska v nesmφrn∞ zajφmavΘm oboru, kter²m webdesign rozhodn∞ je.

Lze z celΘho serißlu vyvodit n∞jak² smyslupln² zßv∞r? Jasn∞ se ukßzalo, ₧e podpora u₧ 5 let starΘho standardu nenφ zdaleka takovß, jakou bychom si ji vÜichni p°ßli. JednoznaΦn∞ nejhorÜφm prohlφ₧eΦem se ukßzal b²t IE6, kter² v podstat∞ ignoruje vÜechny novinky a to vΦetn∞ skuteΦn∞ elementßrnφch v∞cφ jako novΘ selektory, podpora tisku nebo generovanΘho obsahu. Naopak u konkurenΦnφch prohlφ₧eΦ∙ je patrnß snaha o implementaci co nejv∞tÜφ mno₧iny vlastnostφ. Pomysln²m vφt∞zem se podle mΘho nßzoru stßvß Opera 6.05, kterß nejlΘpe zvlßdß nastavenφ tisku a generovan² obsah vΦetn∞ Φφslovßnφ. OvÜem ani Mozilla 1.1 na tom nenφ nijak Üpatn∞ a p°ed IE6 mß velk² nßskok. Uvidφme, jak se s tφm v²vojß°i Microsoftu vypo°ßdajφ.



Jan Dudek (28.1. 2003)

Redakce Interval.cz |  Inzerce na Interval.cz |  Hledßme novΘ autory ISSN 1212-8651 
 ⌐ Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙.