Vyšlo v týdeníku CHIPweek č. 47/96, 19. listopadu 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a647k130.php3

Style sheet

Snahy o zvýšení uživatelské atraktivnosti služby WWW, usilující o další „zkrášlování" jednotlivých WWW stránek, se ubírají více různými cestami. Například cestou podpory dalších datových formátů, které by bylo možné vkládat do jednotlivých WWW stránek - například různých zvuků, obrazových klipů, nebo třeba tzv. animovaných obrázků GIF (viz CHIPweek č. 44). Další cestou je pak obohacování samotného jazyka HTML, ve kterém jsou jednotlivé stránky vytvářeny, resp. zapisovány.

Původní filosofie jazyka HTML, tak jak ji koncipovali autoři samotné služby WWW, byla následující: prostřednictvím výrazových prostředků tohoto jazyka (což jsou nejrůznější značky, tzv. tags, vkládané do samotného textu), se definuje, co je která část textu zač. Tedy například že určitá věta je nadpisem, že určitá skupina vět tvoří odstavec atd. Jak jsme si již popisovali v předminulém vydání této rubriky, rozhodování o tom, jak jednotlivé druhy textu budou skutečně vypadat (jak konkrétně budou zobrazeny), bylo až na samotném prohlížeči (WWW browseru), prostřednictvím kterého si koncový uživatel příslušnou stránku prohlížel.

Později se ovšem začaly prosazovat poněkud odlišné tendence, a do jazyka HTML se začaly zabudovávat takové nové konstrukty (tj. taková rozšíření), které umožňují již při tvorbě samotné stránky dosti přesně vyspecifikovat, jak má tato být zobrazena. Docházelo tedy, a stále dochází k tomu, že do samotného textu a jeho struktury (říkající „co je který kus textu zač") se stále více přimíchává i styl, neboli formátovací instrukce definující konkrétní způsob zobrazení. Navíc se tak dělo a děje způsobem, který není příliš optimální - příslušné formátovací informace, jako například předpisy o použití konkrétních fontů či velikosti a barvě písma, se napevno zabudovávají do samotného jazyka HTML, kterému do té doby byly naprosto cizí. Ještě další problém pak je v tom, že standardizace nejrůznějších takovýchto rozšíření silně zaostává za tempem jejich vzniku a prosazování do praxe, které je „hnáno vpřed" především dvěma hnacími motory - firmami Netscape a Microsoft. A tak vznikají různá vzájemně nekompatibilní rozšíření, se kterými si některé browsery dokáží správně poradit, a jiné nikoli.

Objevilo se ale již i zásadní řešení problému formátování WWW stránek. Je založené na myšlence oddělit samotný text i s jeho strukturou (informacemi o tom, co je která část textu zač) od formátovacích informací, určujících jak má být ten který druh textu konkrétně zobrazen. Vlastně to znamená návrat k původní koncepci jazyka HTML (který bude definovat strukturu textu), zatímco pro vyjádření formátovacích informací byl vytvořen samostatný nový jazyk, s dostatečnými výrazovými prostředky pro vyjádření požadovaného stylu zobrazení.

Důležité je i to, že k rozdělení došlo nejen logicky, ale může k němu dojít i fyzicky - obsah a struktura WWW stránky, vyjádřená v jazyku HTML, může být obsažena v jednom samostatném dokumentu (souboru HTML), zatímco formátovací informace definující požadovaný styl zobrazení mohou mít formu samostatného dokumentu. Tomu se pak říká style sheet, a lze si jej představit jako určitou formátovací šablonu či „vzor". Samotný dokument HTML se pak na takovýto „style sheet" odkazuje, tj. má ve své hlavičce údaj říkající podle jakého konkrétního „style sheet-u" má být zobrazen.

Oddělení struktury (HTML dokumentů) a stylu (style sheet-ů) sleduje i jeden další, velmi užitečný cíl - to, aby se různé dokumenty HTML mohly odkazovat na jeden společný formátovací předpis (jeden společný style sheet). Jeho případnou změnou je pak možné dosáhnout požadovanou změnu zobrazení mnoha dokumentů najednou.

Konkrétní mechanismus „style sheets", který byl před časem schválen organizací W3C (WWW Consorcium) navíc počítá i s tím, že jednotlivé formátovací předpisy bude možné zřetězit - neboli vytvořit jakousi jejich kaskádu (říká se tomu „cascading style sheets"). Myšlenka, která za touto možností stojí, je podobná jako u objektově orientovaného programování - umožňuje vytvářet celé hierarchické soustavy style sheet-ů, které postupně upřesňují požadovaný styl zobrazení (dochází zde k obdobě dědičnosti, k jaké dochází u podobjektů hierarchicky nadřazených objektů). Díky tomu je pak možné například to, aby si určitá organizace vytvořila jeden hlavní style sheet definující společné vlastnosti všech firemních dokumentů (třeba společnou hlavičku s logem), a pak další style sheety upřesňující vzhled tiskových zpráv, memorand, interních sdělení apod.