Text stránky je mnohdy špatně strukturován, protože jednotlivé elementy jsou využívány účelově k dosažení určitých grafických efektů. Druhou velkou nevýhodou je velká pracnost -- většina z vizuálních atributů musí být nastavována opakovaně u všech elementů.
Obě tyto nevýhody odstraňují kaskádové styly -- Cascading Style Sheets (CSS). Styly umožňují definovat způsob zobrazení (druh a velikost písma, barvu, zarovnání apod.) každého elementu na stránce. Styl však není přímo součástí textu stránky a tak může být zápis stránky přehlednější a dobře strukturovaný. Navíc styly umožňují definovat jednotný vzhled určitého elementu v celém dokumentu jedním zápisem -- nemusíme jej opakovat u každého elementu.
Práce se styly byla poměrně podrobně rozebrána v seriálu Vytváříme si domovskou stránku, takže si zde jen zopakujeme nejdůležitější poznatky. Podrobněji se budeme zabývat pouze vlastnostmi umožňujícími řízení pozice elementů na stránce -- tyto vlastnosti byly do HTML přidány právě kvůli dynamickému HTML. Kromě toho se podíváme na používání filtrů v IE 4.0, protože s filtry se pracuje podobně jako s ostatními vlastnostmi stylů.
Doufám, že cennou pomůckou pro vás bude přehled všech vlastností stylů, který je součástí dnešního tématu týdne.
H1, H2, H3 { font-family: Arial, sans-serif;
color: blue }
H1 { text-align: center }
Tento jednoduchý styl se skládá ze dvou pravidel. Každé
pravidlo má dvě části -- selektor (např. H1) a
deklaraci (text-align: center). Všechny deklarace
se skládají ze dvou částí -- z vlastnosti (např.
text-align) a z její hodnoty
(center). Pravidla i deklarace lze navzájem různě
sdružovat.
Selektor nám zajišťuje vazbu na odpovídající HTML element. Jako
selektor mohou být samozřejmě použity všechny elementy HTML. Selektory
lze vytvářet i kontextové. Např. pravidlo se selektorem
H1 EM se použije pouze na text elementu EM,
který je uvnitř nadpisu první úrovně.
Vlastností, které je u každého elementu možno použít, je několik desítek. Všechny jsou uvedeny v připojených tabulkách.
Aby mohl při zobrazování stránky použít prohlížeč styl, musí o něm mít informaci. Nejčastěji se používají následující tři způsoby připojení stylu ke stránce.
<HTML>
<HEAD>
<TITLE>Titulek stránky</TITLE>
<LINK REL=StyleSheet TYPE="text/css"
HREF="http://style.com/super" TITLE="Super styl">
<STYLE TYPE="text/css"><!--
H1, H2, H3 { font-family: Arial, sans-serif;
color: blue }
H1 { text-align: center }
-->
</STYLE>
</HEAD>
<BODY>
<H1>Nadpis je krásně modrý a vycentrovaný</H1>
<P STYLE="color: green">Ekologický paragraf je zelený.
</BODY>
</HTML>
První způsob využívající element LINK připojí k
dokumentu styl uložený v separátním souboru.
Styl může být definován i přímo v dokumentu mezi tagy
<STYLE> a </STYLE>. Pomocí
komentáře jsme definici stylu skryli před staršími prohlížeči, které CSS
nepodporují.
Poslední možností je definice stylu pouze pro jeden konkrétní
element. Toho lze dosáhnout použitím atributu STYLE, který
můžeme použít u všech elementů. Tento způsob však poněkud odporuje
samotné filosofii stylů -- míchá totiž obsah dokumentu s jeho grafickou
prezentací. V dynamickém HTML nám však mnohdy prokáže neocenitelné
služby.
Rozšíření přináší nové vlastnosti, které umožňují přesně řídit
vzájemné umístění jednotlivých elementů na stránce. Mezi nejdůležitější
nové vlastnosti patří left a top, které určují
posunutí elementu. Jejich konkrétní interpretace však závisí na hodnotě
vlastnosti position. Ta může nabývat dvou hodnot --
absolute a relative, které rozlišují mezi
absolutním a relativním určením pozice.
left a top.
Souřadnice se vztahují k souřadnému systému nadřazeného elementu a tím
je nejčastěji celý dokument. Jeho levý horní roh má souřadnice (0,0).
Jako hodnotu vlastností left a top můžeme
použít buď pixely (px) nebo procento, které se vztahuje k
šířce resp. výšce rodičovského elementu:
<BODY> <H1>Zkouška absolutního umístění</H1> <SPAN STYLE="position: absolute; left: 50%; top: 50%"> <B>Computerworld</B> začíná přesně uprostřed obrazovky</SPAN> </BODY>Výsledek našeho prvního pokusu o změnu umístění elementu na stránce si můžeme prohlédnout na obrázku.
![]() |
Šířku, do které se bude formátovat obsah elementu, můžeme určit
pomocí vlastnosti width. Výška se pak upraví podle potřeby.
I tu však můžeme nastavit pomocí vlastnosti height.
Absolutně umístěné elementy se mohou překrývat. O tom, který element
bude vidět, rozhoduje vlastnost z-index. Element, který ji
má nastavenu na větší hodnotu, překryje ty ostatní. Využití popsané
vlastnosti demonstrujeme na následující malé ukázce:
<HTML>
<HEAD>
<TITLE>Absolutní umístění a z-index</TITLE>
<STYLE TYPE="text/css"><!--
.nadpis { font-size: 80px;
font-style: bold }
--></STYLE>
</HEAD>
<BODY>
<DIV CLASS=nadpis>
<SPAN STYLE="position: absolute; left: 1; top: 1;
color: #001; z-index: 1">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 2; top: 2;
color: #003; z-index: 2">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 3; top: 3;
color: #005; z-index: 3">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 4; top: 4;
color: #007; z-index: 4">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 5; top: 5;
color: #009; z-index: 5">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 6; top: 6;
color: #00b; z-index: 6">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 7; top: 7;
color: #00d; z-index: 7">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 8; top: 8;
color: #00f; z-index: 8">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 9; top: 9;
color: #22f; z-index: 9">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 10; top: 10;
color: #44f; z-index: 10">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 11; top: 11;
color: #66f; z-index: 11">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 12; top: 12;
color: #88f; z-index: 12">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 13; top: 13;
color: #aaf; z-index: 13">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 14; top: 14;
color: #ccf; z-index: 14">Computerworld</SPAN>
<SPAN STYLE="position: absolute; left: 15; top: 15;
color: #eef; z-index: 15">Computerworld</SPAN>
</DIV>
</BODY>
</HTML>
left a
top. Jeho formátování přitom zůstane zachováno. Text v
nadřazeném elementu zůstane zformátován tak, jako by posunutý element
nebyl vůbec posunut. Malá ukázka:
Nějaký text <SPAN STYLE="position: relative; left: 10px; top: 10px"> Relativní text</SPAN> a zase původní text.
Element se stylem position: relative opět definuje nový
souřadný systém s počátkem ve svém levém horním rohu. To lze využít
například pro vytvoření stínu:
<DIV STYLE="font: bold 30px Arial">Ukázka
<SPAN STYLE="position: relative">stínovaného textu
<SPAN STYLE="position: absolute; left: 2px; top: 2px;
color: green">stínovaného textu
</SPAN></SPAN>uvnitř jiného textu.</DIV>
Pro vytváření různých efektů je důležitou vlastností
visibility. Může nabývat dvou hodnot --
visible a hidden. První z nich říká, že
element bude vidět. Druhá, že vidět nebude.
Vlastnost visibility musíme odlišit od vlastnosti
display. Deklarace display: none způsobí, že
se element bude zcela ignorovat, jakoby na stránce vůbec nebyl. Oproti
tomu visibility: hidden vynechá pro element místo, element
pouze není viditelně zobrazen. To lze využít pro různé efekty, pokud
máme několik elementů překrytých přes sebe a podle potřeby je
zviditelňujeme a zneviditělňujeme.
Samotná deklarace filtru ve stylu je jednoduchá. Obecně ji můžeme zapsat jako
filter: jméno_filtru(parametry)Jedna deklarace přitom může obsahovat několik filtrů najednou -- jednotlivé filtry se oddělí mezerou. Následující HTML kód vloží do stránky obrázek a pomocí filtrů u něj vytvoří stín a vertikálně ho otočí:
<IMG SRC="fotka.jpg"
STYLE="filter: DropShadow(Color=#808080,OffX=4,OffY=4) FlipV()">
Filtry nelze používat u všech elementů, ale jen u některých. Obecně se
dá říci, že jde o elementy, které po zobrazení vždy zaujímají
obdélníkovou plochu konstantní velikosti. Jedná se o elementy
BODY, BUTTON, IMG, INPUT, TABLE, TD, TEXTAREA, TFOOT, TH, THEAD,
TR. Filtry lze aplikovat i na elementy DIV a
SPAN, pokud mají definovánu výšku a šířku anebo jsou na
stránce umístěny absolutně.
Podrobný přehled filtrů a všech jejich parametrů je uveden v tabulce. Praktickou práci s filtry a to včetně filtrů přechodových si předvedeme v části věnované ukázkám dynamického HTML.
Úvod | JavaScript | Ukázky | Přehled vlastností stylů | DHTML vs. Java