Naprostß v∞t╣ina dne╣nφch webov²ch strßnek je upravovßna pomocφ tabulek. Obzvlß╣t∞ dob°e se jimi d∞lß sloupcovß ·prava, kterß usnad≥uje Φtenφ. Tabulky majφ ale jednu zßkladnφ nev²hodu -- zobrazujφ se a╛ potΘ, co se celΘ naΦtou. ╚tenß° pak koukß v∞Φnost na prßzdnou strßnku. Nebylo by lep╣φ naΦφst text, zobrazit ho a teprve potom naΦφtat odkazy v okolnφch sloupeΦcφch? To umo╛≥uje CSS pozicovßnφ.
NejΦast∞j╣φ pojetφ tabulkovΘ ·pravy je toto:
HlaviΦka |
||
Lev² sloupecObsahuje zpravidla hodn∞ odkaz∙ |
ObsahObsah strßnky, vlastnφ text, kter² je d∙le╛it². Jednφm z nejv∞t╣φch problΘm∙ je prom∞nlivß v²╣ka tohoto hlavnφho textu. |
Prav² sloupec |
PatiΦka |
N∞kdy strßnka nemß prav² sloupec nebo patiΦku, ΦastΘ variace se t²kajφ roh∙ strßnek, to m∞ ale nynφ nezajφmß. Tabulkov∞ to popisuji jinde. V dal╣φm textu ukß╛u, jak tΘto ·pravy strßnky dosßhnout pomocφ CSS pozicovßnφ.
Ka╛d² nßvrh strßnkovΘ ·pravy by m∞l zaΦφnat nßkresem s rozm∞ry. Dejme tomu, ╛e strßnku chci ladit pro ╣φ°ku obrazovky 800 pixel∙, tak╛e bych nem∞l p°ekroΦit 760 pixel∙ ╣φ°ky (n∞co se╛erou okraje a li╣ty). Vymyslφm si i dal╣φ rozm∞ry pro r∙znΘ Φßsti strßnky:
V²╣ka 120 pixel∙; x=0, y=0 | ||
╣φ°ka 150 px, v²╣ka libovolnß x=0, y=120 |
╣φ°ka 500 pixel∙, v²╣ka podle obsahu x=150, y=120 |
╣φ°ka 110 px
x=650 |
╣φ°ka 500, umφst∞nφ podle obsahu obsahu |
Tag <div> se n∞kdy naz²vß oddφl. V pozicovßnφ se pou╛φvß ke uzav°enφ obsahu, kter² mß b²t absolutn∞ pozicovßn. Je to jist∞j╣φ ne╛ jinΘ tagy, proto╛e to pak sprßvn∞ zobrazφ i Internet Explorer 4 a NN 4.
Nap°φklad tento HTML k≤d:
<div style="position: absolute; top: 120px, left: 150px>Obsah</div>
se zobrazφ jako slovo "Obsah", kterΘ bude zaΦφnat 120 pixel∙ pod a 150 pixel∙ vlevo od hornφho levΘho rohu strßnky. Top je sou°adnice y (v obrßcenΘm sm∞ru), left je x. Podrobnosti v popisu pozicovßnφ.
Ka╛dß Φßst strßnky (tj. hlaviΦka, obsah, sloupce, patiΦka) se zapφ╣ou jako jeden <div>, kterΘmu se p°edepφ╣e absolutnφ poloha, ╣φ°ka a n∞kdy v²╣ka.
<div style="position: absolute; width: 500px; top: 120px; left:
150px">Obsah s jakkoli divok²m k≤dem a s patiΦkou</div>
<div style="position:
absolute; width: 760px; top: 0px; height: 120px; left: 0px">HlaviΦka</div>
<div style="position:
absolute; width: 150px; top: 120px; left: 0px">Lev² sloupec</div>
<div style="position:
absolute; width: 110; top: 120px ; left: 650px">Prav²
sloupec</div>
Hlavn∞ si, prosφm, v╣imn∞te, ╛e m∙╛u oddφly do k≤du umφstit v libovolnΘm po°adφ. NaΦφtajφ se od prvnφho, nejlΘpe je tedy umφstit dop°edu obsah.
HezΦφ ne╛ zßpis absolutnφ polohy do k≤du je vytvo°it si ve hlaviΦce souboru stylopis:
<style>
#obsah {position: absolute; width: 500px; top: 120px; left: 150px}
#hlavicka {position: absolute; width: 760px; height: 120px; top: 0px;
left: 0px}
#levy {position: absolute; width: 150px; top: 120px; left: 0px}
#pravy{position: absolute; width: 110px; top: 120px; left: 650px}
</style>
a jednotliv²m oddφl∙m textu p°i°adit identifikßtory:
<div id="obsah">Obsah s jakkoli divok²m k≤dem a s patiΦkou</div>
<div id="hlavicka">HlaviΦka</div>
<div id="levy">Lev²
sloupec</div>
<div id="pravy">Prav²
sloupec</div>
M∙╛ete si zobrazit p°φklad, kter² zhruba odpovφdß popisovan²m k≤d∙m.
Je pot°eba peΦliv∞ kontrolovat, aby obsah oddφl∙ nebyl p°φli╣ ╣irok² (lev² sloupec) nebo vysok² (hlaviΦka), proto╛e by pak do╣lo k p°ekryvu. V∞t╣inou takovΘ problΘmy ale nejsou, proto╛e lev² sloupec se zalamuje a hlaviΦka b²vß peΦliv∞ odlad∞nß. P°inejhor╣φm lze zm∞nit rozm∞rovΘ °e╣enφ oddφl∙. P°ekr²vßnφ se dß kdy╛tak °e╣it CSS vlastnostmi z-index, clip a rect.
Sloupce se dajφ r∙zn∞ formßtovat; nejzajφmav∞j╣φ je asi jejich barvenφ. Jde p°itom o barvu pozadφ, textu a o barvy odkaz∙. Samoz°ejm∞ pou╛iji CSS styly. Proberu na p°φkladu levΘho sloupce.
<style>
#levy {background-color: green; color: white}
#levy H3 {color: black}
#levy a:link {color: yellow}
#levy a:visited {color: silver}
#levy a:hover {color: red}
</style>
V p°φkladu jsem nadefinoval barvu celΘho oddφlu "levy", barvu nadpisu H3 a barvy odkaz∙ uvnit° tohoto oddφlu. KonkrΘtn∞ se barvy samoz°ejm∞ musejφ odladit tak, aby design sed∞l.
Podrobn∞ji popisuji barvenφ oddφl∙ u p°φkladu s li╣tou.
Nejv∞t╣φm problΘmem je ud∞lat boΦnφ sloupce podbarvenΘ (background-color) nejen pod jejich obsahem, ale po celΘ v²╣ce strßnky. To se jednodu╣e ud∞lat nedß, proto╛e zpravidla nenφ znßmo, jak vysok² bude prost°ednφ oddφl s textem.
Lev² sloupec podbarven² a╛ tam, kam mß obsah | Obsah strßnky
|
Prav² sloupec podbarven² |
Pod obsahem je bezbarv² prostor. | taky bezbarvo |
Jsou jen n∞kterß ΦßsteΦnß °e╣enφ:
CSS pozicovßnφ nefunguje v trojkov²ch verzφch prohlφ╛eΦ∙, kterΘ dnes ale pou╛φvajφ (podle m²ch v²zkum∙) necelß dv∞ procenta Φtenß°∙ (a to si je╣t∞ myslφm, ╛e jsou to experimentujφcφ webmaste°i). Pokud chcete, aby se i jim strßnka zobrazila ve sloupcφch, musφte ud∞lat alternativnφ tabulkovou verzi a skriptem na ni navigovat. Lep╣φ je ale vyka╣lat se na n∞. Ono je to toti╛ pro n∞ takΘ ΦitelnΘ, t°eba╛e ne tak hezky.
Vizte tΘ╛: popis CSS pozicovßnφ, p°φklad CSS sloupc∙, hlavnφ strßnka CSS, Jak ud∞lat levΘ menu
Taky si, prosφm, v╣imn∞te, jak jsou d∞lanΘ tyto strßnky.
Obsah
Hledßnφ
Zßkladnφ kurs
Editory
HTML tipy
Provoz webu
CSS styly
Jak psßt web:
http://dusan.pc-slany.cz/internet/
Pφ╣e Yuh∙: autorova strßnka, mail: dusan@pc-slany.cz
Poslednφ aktualizace 28.11.2001