CSS pozicovßnφ

Absolutnφ a relativnφ - P°φklad - Syntaxe - Top a left - Relativnφ poloha - Absolutnφ poloha - P°ekr²vßnφ - Vno°enΘ pozice - Star╣φ prohlφ╛eΦe - NaznaΦenφ skriptovßnφ

Pokud jste d°φve cht∞li n∞co n∞kam p°esn∞ umφstit do webovΘ strßnky, byli jste odkßzßni na tabulky. Ale dne╣nφ nejroz╣φ°en∞j╣φ prohlφ╛eΦe (IE 4 a 5, Netscape 4) podporujφ tzv. CSS pozicovßnφ element∙ (CSS-P). Jak²koliv objekt (obrßzek, tabulka, text, cokoliv) lze nynφ umφstit kamkoliv na strßnku, s objekty se m∙╛e posouvat a mohou se p°ekr²vat. S CSS pozicovßnφm se v dne╣nφm webu setkßte mßlo, podle mΘho nßzoru je to tφm, ╛e to v∞t╣ina editor∙ neumφ zadßvat. Jakmile ale upravujete p°φmo zdroj, jde to snadno. Je ale pot°eba trochu um∞t pracovat s kaskßdov²mi styly.

Absolutnφ a relativnφ

Existujφ dva naprosto odli╣nΘ druhy pozicovßnφ. Absolutnφ pozice umφstφ objekt do strßnky na udanΘ sou°adnice bez ohledu na okolnφ text. Relativnφ pozice naproti tomu urΦuje pouze, o kolik se mß objekt posunout oproti svΘ normßlnφ poloze.

P°φklad

<body>

Normßlnφ text,

<span style="position: relative; top: 20px"> relativn∞ umφst∞n² text</span> a

<span style="position: absolute; top: 100px; left: 150px">absolutn∞

umφst∞n² text</span>.

</body>

V²sledek p°φkladu s pozicovßnφm

P°φklad si m∙╛ete zobrazit v prohlφ╛eΦi. Mimochodem tak zjistφte, zda ten vß╣ prohlφ╛eΦ CSS pozicovßnφ podporuje (bude-li to vypadat tak jako na obrßzku).

Co znamenajφ jednotlivΘ zßpisy:  

<span style="...">
span je znaΦka, kterß nenese ╛ßdn² vlastnφ v²znam, pouze vymezuje text, kter² se li╣φ stylem. Jsou-li pro vßs zßpisy CSS styl∙ tajemstvφm, podφvejte se, jak se CSS (kaskßdovΘ styly) zapisujφ a pou╛φvajφ prakticky.
position: relative
relativnφ poloha je vlastn∞ posunutφm objektu. Posouvß se dol∙ o dvacet pixel∙ vlastnostφ "top: 20px".
position: absolute
absolutnφ poloha umis╗uje lev² hornφ roh objektu (span) na sou°adnice 150, 100. Vlastnost left: 150px zde v tuto chvφli posouvß po ose x o 150 pixel∙.

Syntaxe

<tag style="position:(absolute|relative); [top: dΘlka]; [left: dΘlka]; [z-index: Φφslo]">Pozicovan² element</tag>

Samoz°ejm∞ jako u v╣ech CSS vlastnostφ lze pou╛φvat stylopisy, t°φdy a identifikßtory.

Top a left

Vlastnosti, kterΘ urΦujφ sm∞r a mφru posunutφ. Nßzvy t∞chto vlastnostφ jsou pon∞kud nelogickΘ, tak╛e je pot°eba si zapamatovat, ╛e top urΦuje posunutφ objektu sm∞rem dol∙ a left doprava. Pro posouvßnφ nahoru a doprava se nepou╛φvß down a right, n²br╛ top a left se zßporn²mi hodnotami. Velikost posunu m∙╛ete zadat ve v╣ech jednotkßch, kterΘ CSS podporuje (nejΦast∞ji px, pt nebo cm).

Relativnφ poloha

Position: relative je v ka╛dΘm smyslu pouze posunutφ. Okolnφ text se formßtuje bez ohledu na jakoukoliv pozici objektu, to znamenß, ╛e tam, kde by posouvan² objekt m∞l b²t, z∙stßvß prßzdnΘ mφsto. Jin²mi slovy: p°i relativnφ poloze element nenφ vyjmut z toku dokumentu. Obecn∞ doporuΦenΘ pou╛itφ relativnφ polohy neexistuje, pou╛φvß se v∞t╣inou jako takovß legrßcka. Ale je dobrΘ v∞d∞t, ╛e to existuje, proto╛e kdo vφ, co budete kdy pot°ebovat?

Absolutnφ poloha

Position: absolute mi p°ipadß jako mnohem mocn∞j╣φ zbra≥. Objekt s touto vlastnostφ je mo╛nΘ umφstit doslova kamkoliv. P°itom se okolnφ text chovß, jako by takovΘho objektu v∙bec nebylo. (Aneb je vyjmut z toku dokumentu.) Kdybych nap°φklad sem za tuto hv∞zdiΦku ** umφstil absolutn∞ pozicovanou druhou hv∞zdiΦku, v∙bec se to v tomto textu neprojevφ, ale zobrazφ se ·pln∞ jinde.

ZajφmavΘ efekty vzniknou r∙znou kombinacφ vlastnostφ left a top:

Jak jsem se doΦetl, v IE 4 je mo╛no absolutnφ pozici aplikovat pouze na tagy applet, button, div, fieldset, iframe, img, input, object, select, span, table a textarea. Tak╛e nap°φklad odstavec <p> nefunguje. V NN 4 a IE 5 funguje, ale stejn∞ jej tedy nelze pou╛φt, proto╛e v IE 4 by se to zobrazilo ╣patn∞. A jß nem∙╛u v∞d∞t, jak² prohlφ╛eΦ mß klient.

P°ekr²vßnφ (z-index)

Proto╛e p°i p°esouvßnφ objekt∙ m∙╛e dojφt k p°ekryvu, existuje vlastnost urΦujφcφ, kter² objekt bude navrchu. Ta vlastnost se jmenuje z-index a dosahuje hodnot cel²ch Φφsel. P°itom vy╣╣φ Φφslo znamenß vy╣╣φ prioritu p°i p°ekr²vßnφ. Lze si to trochu p°edstavit jako t°etφ rozm∞r. Standardn∞ je to nula. Pokud nenφ z-index uveden nebo je u obou prvk∙ stejn², je navrchu ten prvek, kter² se v HTML zßpisu vyskytuje pozd∞ji. Nap°φklad

<span style="position: absolute; top: 0px; left: 0px; z-index: -1"><img src=n∞co.gif ></span>

je obrßzek absolutn∞ umφst∞n² v rohu strßnky a v╣echen tamnφ text jej p°ekr²vß, proto╛e obrßzek mß nastaveno z-index: -1. Mimochodem, takto se dajφ tvo°it "pseudopozadφ".  Z-index se d∞dφ do v╣ech vno°en²ch element∙. 

V Netscape 4 se z-index ne v╛dy chovß sprßvn∞, ale neodhalil jsem ╛ßdnou zßkonitost chyby. V Internet Exploreru chybuje pouze tag <select>, kter² se v╛dy zobrazuje na vrchu (a mo╛nß je╣t∞ obΦas <object>).

Vno°enΘ pozice

Jak jsem uvedl, poΦßtek sou°adnicovΘho systΘmu pro absolutnφ pozicovßnφ je v∞t╣inou hornφ lev² roh strßnky. Co ale znamenß to v∞t╣inou? «e to m∙╛e b²t i jinak. V p°φpad∞, ╛e pozicovan² prvek (abs. Φi rel.) obsahuje druh² absolutn∞ pozicovan² prvek, bude ten druh² brßt poΦßtek sou°adnic podle hornφho levΘho rohu prvnφho prvku. Jin²mi slovy ka╛d² absolutn∞ Φi relativn∞ pozicovan² prvek definuje sou°adnicov² systΘm pro v╣echny absolutn∞ pozicovanΘ prvky, kterΘ obsahuje. Tato vlastnost je p°φjemnß a dajφ se s nφ d∞lat velmi psφ kusy.

Star╣φ prohlφ╛eΦe

Proto╛e n∞kterΘ prohlφ╛eΦe nepodporujφ CSS-P (Netscape 3, IE 3), je nutnΘ zadßvat absolutn∞ umφst∞nΘ objekty na alespo≥ trochu logickΘ mφsto, proto╛e v t∞chto prohlφ╛eΦφch se to zobrazφ normßln∞ v toku dokumentu. Zßrove≥ zd∙raz≥uji, ╛e se na pozicovßnφ nelze stoprocentn∞ spolehnout. N∞kdy je dobrΘ takovΘ elementy do k≤du dopsat a╛ skriptem podle typu prohlφ╛eΦe.

«el, musφm zmφnit, ╛e ani ty nejnov∞j╣φ prohlφ╛eΦe nepodporujφ CSS-P bezchybn∞. ⌐patn∞ je na tom zejmΘna Navigator 4, kter² sice samotnΘ pozicovßnφ z vlßdß dob°e, ale pak na strßnce d∞lß chyby v obtΘkan²ch objektech a n∞kterΘ oddφly prost∞ nezobrazφ, leda po zm∞n∞ velikosti okna. :-?

NaznaΦenφ skriptovßnφ

Zatφm jsem nezmφnil mo╛nß hlavnφ p°ednost pozicovßnφ: pomocφ skript∙ se dß s pozicovan²mi elementy h²bat tak, ╛e jim p°i°adφte jinou pozici. Nebudu zde rozebφrat zßludnosti JavaScriptu, jen pro zasv∞cen∞j╣φ vypφ╣u p°φkazy, kter²mi se dß poloha m∞nit.

P°φklad

Mßm-li pozicovan² element s ID (nap°φklad id="tygr"), potom pro IE 4 a 5 vypadß p°φkaz posunutφ elementu dol∙ o 20 px takto:

document.all.tygr.style.top += "20px",

Pro Netscape 4 a v∞t╣inu normßlnφch prohlφ╛eΦ∙:

document.tygr.top += "20px"

 

 

Vizte tΘ╛: sloupce pozicovßnφm, CSS styly, ·vod do CSS, CSS prakticky, p°ehled hodnot CSS, design pomocφ tabulek, simulace zßva╛φ na gum∞, p°φklad sloupcovΘ ·pravy

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

Pozadφ

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

Definice

Formßtovacφ chyby

Jak ud∞lat levΘ menu

Vyt∞╛ovßnφ strßnek

Provoz webu

Rychlost strßnek

VzdßlenΘ slu╛by

VyhledßvaΦe

Katalogy

Sprßva soubor∙

Ikona strßnky

Obsah / forma

╚e╣tina

Chyby Φe╣tiny

Tabulky k≤dovßnφ

Meta tagy

Nastavenφ serveru

Programovßnφ strßnek

ZaΦßtky PHP

Mo╛nosti PHP

Pou╛φvßnφ prohlφ╛eΦe

CSS styly

CSS styly

┌vod do CSS

Struktura textu

CSS prakticky

P╪EHLED VLASTNOST═ CSS

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 26.11.2001