Vlastní styly

v CSS aneb třídy, identifikátory a složené deklarace

Příklad s podtitulem - Identifikátor - Složené deklarace - Skládání stylů - Pseudoelementy - Shrnující příklad

V HTML existuje několik podporovaných stylů textu (tagů), například nadpisy, seznamy, definice. Jejich zobrazení a formátování se dá ovlivnit pomocí CSS stylů, o tom byly minulé kapitoly. Aby se mohl potenciál kaskádových stylů rozvinout do krajnosti, mohou si tvůrci webových stránek definovat styly vlastní.

Příklad: podtitul

Příkladem vlastního stylu může být podtitul. (Nepatří do nadpisu a přece by měl být formátován odlišně než normální text.) Dá se formátovat přímo, ale aby byl ve všech dokumentech stejný, je dobré nadefinovat jej jako styl. HTML ale nemá pro podtitul žádný tag <podtitul>, a tak si musím pomoci jinak. Vytvořím třídu s názvem podtitul, ve stylopisu mu nadefinuji vlastnosti (třeba tučnost, zarovnání na střed) a u daného textu jenom řeknu, že patří do třídy podtitul.

Jak vypadá stylopis:

<style>

<!--

.podtitul { text-align: center; font-weight: bold; text-decoration: overline} /* zarovnání na střed, tučné písmo a nadtržení*/

-->

</style>

a potom v těle dokumentu to vypadá takhle:

<p class="podtitul">Text podtitulu</p>

A v prohlížeči potom takhle:

Text podtitulu

Text uvnitř "zaklasovaného" elementu se bude formátovat podle definice ve stylopisu. Ještě je třeba všimnout si tečky na začátku deklarace ve stylopisu. Ta vyjadřuje, že deklarace se nebude týkat html tagu, ale třídy.

Atribut class (třída) se může použít u libovolného elementu (tagu). Může se v dokumentu vyskytovat mnohokrát (na rozdíl od ID -- identifikátoru, o tom později). Potom se tento element zformátuje podle definice.

Takto je možné vytvořit si mnoho vlastních tříd -- stylů. Já mám například kromě podtitulu nadeklarovaný formát poznámek, odkazových lišt a důležitějších odstavců. Je možné toho vymyslet desítky, to se dočtete v kapitole o strukturovaném textu.

Identifikátor

Pro jednoznačný popis nějakého elementu (zejména pro potřeby skriptů) existuje univerzální atribut ID. I jemu se může ve stylopisu přiřadit nějaká deklarace, ale na rozdíl od třídy nezačíná tečkou, ale dvojkřížkem. V těle dokumentu by se element s jedním identifikátorem měl vyskytovat jenom jednou.

Kdybych v předchozím příkladu použil identifikátoru namísto třídy, deklarace by vypadala takhle:

#podtitul { text-align: center; font-weight: bold; text-decoration: overline}

a v těle by se odstavci přiřadila identifikace atributem id:

<p id="podtitul">Text podtitulu</p>

Osobně identifikátory pro formátování nepoužívám, stačí mi třídy.

Složené deklarace

Hromadná deklarace

Stylopisy umožňují nadeklarovat vlastnosti pro více elementů najednou. Například deklarace

H1, H2, H3    {color: green}

obarví všechny odstavce první, druhé i třetí úrovně na zeleno. Hromadnou deklaraci používám, pokud zadávám mnoho stejných vlastností pro mnoho elementů. Důležitá je čárka mezi selektory! Kdyby tam nebyla, šlo by o něco jiného, totiž o kontextový selektor.

Kontextová deklarace

Vysvětlím příkladem:

H3 A    {font-style: italic}

Tato deklarace by udělala kurzívou všechny odkazy uvnitř nadpisů třetí úrovně (elementy A uvnitř elementu H3). Odkazy v obyčejných odstavcích to nijak neovlivní, stejně tak obyčejný text trojkového nadpisu. Osobně tuto vlastnost považuji za nejfantastičtější a výborně použitelnou vlastnost CSS. Použil jsem ji v příkladu o různých barvách odkazů.

Skládání stylů

Díky CSS se na jeden element může navrstvit mnoho různých deklarací (proto styly kaskádové), někdy i protichůdných. Jak se rozhodne, která deklarace převládne? Zpravidla ta poslední. Když chci, aby nějaká dřívější deklarace převládla, napíšu do deklarace řetězec "! important". Taková deklarace potom nebude přehlušena žádnou pozdější. (Tuto vlastnost doporučuji používat s rozvahou, protože způsobuje zmatek při pozdějším ladění designu.)

Pseudoelementy

Ve specifikaci CSS1 se vyskytují pseudoelementy :first-line a :first-letter. Znamenají první řádek a první písmeno. Například zápis:

p:first-line {color: blue}

p:first-line {font-size: 200%}

by měl způsobit, že odstavce budou mít první řádek modrý a první písmeno dvakrát větší.

Ale ve většině prohlížečů to nefunguje. Hodně lidí nad tím strávilo x hodin ve snaze to rozchodit. Je to marné.

Z prohlížečů to podporují pouze Mozilla 5 a Internet Explorer 5.5 (nikoliv IE 5.0)

Shrnující příklad

Ve stylopisu (v hlavičce či v externím souboru) se mohou vyskytovat i takovéhle věci:

<style>

#prvniodstavec    {text-ident: 20 px}

A:visited    {color: teal}

A:link        {color: navy}

a:hover    {color: red}

.velke A    {font-weight: bold}

.zalozka    {font-style: oblique}

.zalozka A:visited    {color: navy ! important}

H1, H2    {color: #33ff66; font-variant: small-caps}

H2    {font-size: 18pt}

</style>

Doufám, že význam je zřejmý. Všechno to funguje. Důležité je v příkladu snad jen to, že se může jeden element deklarovat vícekrát a že kontextová deklarace se může kombinovat s třídami a pseudotřídami.

Upozornění

Ve jménech tříd a identifikátorů se vyvarujte používání podtržítka _ (a raději i češtiny a jiných pochybných znaků). Internet Explorer 5 podtržítko v názvu třídy nebo ID snese a správně zobrazí, žádný jiný prohlížeč ale ne!!!

Další: Délkové jednotky v CSS, Předchozí: CSS prakticky nebo přehled vlastností CSS
Viz též: strukturování textu, úvod do CSS, Dynamické HTML
Příklad: různé barvy odkazů

Píše Yuhů
dusan@pc-slany.cz
mail formulářem
Jak psát web O tvorbě, údržbě a zlepšování internetových stránek.

Základy HTML CSS FrontPage Hledání

Obsah

Hlavní stránka

Novinky

FAQ

Download

Zdroje

Hledání


Rozšířené

Základní kurs

Jak udělat stránku

Základy HTML

Publikování

Zásady psaní

Editory

Různé prohlížeče

Editory

FrontPage 2000

FP Editor 98

Word 97

FrontPage Express

HTML tipy

Příprava obrázků

Obrázky

Odkazy

Vychytávky odkazů

Záložky

Aktivní mail

Tabulky

Úprava tabulek

Novinky tabulek

Design tabulkami

Rámy

Formátování rámů

Rámy nepoužívat

Iframe

Formuláře

Formuláře v HTML

Dokonalé formuláře

Zápis barev

Seznam definic

Formátovací chyby

Jak udělat levé menu

Provoz webu

Rychlost stránek

Vzdálené služby

Vyhledávače

Katalogy

Správa souborů

Obsah / forma

Čeština

Chyby češtiny

Tabulky kódování

Meta tagy

Nastavení serveru

Programování stránek

Používání prohlížeče

CSS styly

CSS styly

Úvod do CSS

Struktura textu

CSS prakticky

Přehled vlastností

Složitější deklarace

Délkové jednotky

Pozicování

Sloupce pozicováním

Okraje objektů

Odlišení prohlížečů

Omezení CSS

Odlišný tisk

Dynamické HTML

Filtry

Příklady filtrů

Různé barvy odkazů

Barva rolovací lišty

 


Jak psát web: http://dusan.pc-slany.cz/internet/

Píše Yuhů: autorova stránka, mail: dusan@pc-slany.cz

Poslední aktualizace 27.07.2001