Kaskßdovßnφ

vyhodnocovßnφ konflikt∙ CSS deklaracφ

Pravidla kaskßdovßnφ - P°ednastaven² vzhled - D∞diΦnost - Priorita vnit°nφho elementu - Pozd∞j╣φ vyhrßvß - Vlastnφ nastavenφ

Dlouho jsem nemohl pochopit, proΦ se kaskßdovΘ styly jmenujφ kaskßdovΘ. Ne ╛e bych to te∩ ·pln∞ chßpal, ale pokusφm se alespo≥ naznaΦit. 

CSS vznikalo v dob∞, kdy v HTML jazyce panoval stra╣liv² zmatek. Objevovaly se novΘ tagy, kterΘ m∞ly za cφl jenom formßtovat text urΦit²m zp∙sobem, nebyl v tom ╛ßdn² systΘm. Byla pot°eba vytvo°it univerzßlnφ systΘm, kter² by deklaroval formßtovßnφ jak mal²ch kousk∙ textu (obdoba tagu font), tak cel²ch blok∙ textu (obdoba nap°. tagu basefont) nebo dokonce soustav dokument∙. 

Slo╛it² systΘm je nßchyln² k chybßm. Znßmou nev²hodou HTML jazyka bylo, ╛e nem∞l mechanismus na °e╣enφ konfliktnφch a ne·pln²ch deklaracφ. CSS s n∞Φφm takov²m poΦφtß u╛ od zaΦßtku a dokonce to mß ve jmΘn∞ (CSS = Cascading Style Sheets). 

Pravidla kaskßdovßnφ

Je to na╣t∞stφ velmi logickΘ: 

  1. Zvyk je ╛eleznß ko╣ile.
  2. Jablko nepadß daleko od stromu (d∞diΦnost).
  3. Bli╛╣φ ko╣ile ne╛ kabßt.
  4. Kdo se sm∞je naposled, ten se sm∞je nejlφp.
  5. Proti gustu ╛ßdnej di╣putßt.

P°ednastaven² vzhled

Zvyk je ╛eleznß ko╣ile znamenß, ╛e kaskßdovΘ styly respektujφ p∙vodnφ vzhled html element∙. Pokud styly n∞co nem∞nφ, tak to z∙stane. Nap°φklad kdy╛ u tagu H2 zm∞nφm barvu

h2 {color: green}

tak se sice zm∞nφ barva, ale z∙stane p∙vodnφ velikost pφsma. Prost∞ co styly v²slovn∞ neupravujφ, to z∙stßvß.

D∞diΦnost

Pod°φzen² element p°ejφmß formßtovßnφ nad°azenΘho elementu. Nap°φklad kdy╛ se nastavφ barva pφsma t∞la dokumentu na Φervenou,

body {color: red}

tak budou ΦervenΘ i v╣echny odstavce, prost∞ v╣echno. 

N∞kterΘ vlastnosti se ned∞dφ (nap°φklad border). Ve specifikaci je to u ka╛dΘ vlastnosti napsßno.

N∞kterΘ prohlφ╛eΦe v d∞diΦnosti chybujφ (nap°. obsah tabulky ned∞dφ nastavenφ body). 

Priorita vnit°nφho elementu

Bli╛╣φ ko╣ile ne╛ kabßt znamenß, ╛e v p°φpad∞ konfliktu vyhrßvß ten element, kter² je "vnit°n∞j╣φ", je blφ╛e formßtovanΘmu obsahu. Kdy╛ mßm t°eba zßpis 

<span style="color: red"><span style="color: green">obsah</span></span>,

tak obsah bude zelen², nikoliv Φerven². P°ebφjφ to i d∞diΦnost (s v²jimkou vlastnosti display: none).

Pozd∞j╣φ vyhrßvß

Pokud se zapisuje vlastnost n∞jakΘho elementu vφcekrßt za sebou (a t°eba r∙zn∞), tak platφ ten zßpis, kter² je uveden nejpozd∞ji. To se stßvß hlavn∞ tak, ╛e n∞co deklaruji ve stylopisu strßnky a pak to pot°ebuji na urΦitΘm mφst∞ zm∞nit. 

<style>
p {color: red; font-style: italic}
</style>
<body>
<p style="color: blue">modr² odstavec kurzφvou</p>
<p>normßlnφ Φerven² odstavec kurzφvou</p>
</body>

Vlastnosti, kterΘ nejsou m∞n∞ny, z∙stßvajφ v platnosti (v p°φkladu ta kurzφva -- font-style: italic nebyla p°epsßna)  Platφ poslednφ zadßnφ (barva color: byla p°epsßna).

!important

Dß se nastavit, aby vlastnost nebyla pozd∞ji p°epsßna. D∞lß se to klauzulφ !important za zßpisem CSS vlastnosti. Nap°. 

h1 {color: red !important}
h1 {color: blue}

<h1>Nadpisy budou ΦervenΘ</h1>, i kdy╛ byla snaha je zamod°it. Pokud si dob°e pamatuji, Netscape !important nebere a ignoruje. P°i pou╛φvßnφ !important je nutnΘ b²t opatrn², proto╛e kdy╛ se na to zapomene, tak se pak d∞sn∞ blb∞ ladφ dlouhΘ stylopisy. 

Vlastnφ nastavenφ

Modernφ prohlφ╛eΦe dovolujφ u╛ivateli pou╛φvat p°i Φtenφ strßnek vlastnφ p°edlohu se styly. Nap°φklad v Internet Exploreru se to d∞lß v Nßstrojφch > Mo╛nosti Internetu > karta ObecnΘ > Usnadn∞nφ > Formßtovat dokumenty pomocφ vlastnφch p°edloh se styly. Sem si ka╛d² m∙╛e zadat sv∙j *.css soubor a v╣echny prohlφ╛enΘ strßnky jφm budou ovlivn∞ny. 

Pou╛φvß to mßlokdo, ΦastΘ je to pouze u slabozrak²ch. Pßr znßm²ch to pou╛φvß pro eliminaci nesnesiteln²ch barevn²ch efekt∙ Φten²ch strßnek.  

Pokud je takov² soubor dob°e napsßn, dovoluje dost zm∞nit vizß╛ strßnek. Uvedenß pravidla majφ toti╛ nejvy╣╣φ prioritu (dß se to chßpat i tak, ╛e jsou uvedena nakonec), nezm∞nφ ale to, co mß nastaveno !important. I to je d∙vod, proΦ rad∞ji moc nepou╛φvat !important. 

Odflßknut² p°φklad: p°φklad konfliktnφch deklaracφ

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

KaskßdovΘ styly na www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003