CSS vlastnost position určuje způsob počítání polohy prvku.
hodnoty | způsob výpočtu umístění |
---|---|
absolute | prvek bude vyjmut z toku dokumentu a umístěn na určitých souřadnicích |
relative | prvek bude posunut ze svého normálního umístění |
static | prvek je umístěn normálně v dokumentu |
fixed | prvek je umístěn absolutně vzhledem k oknu - nepoužitelné, protože nefunguje v Exploreru |
Výchozí hodnota static znamená pouze to, že se s prvkem pracuje normálně. Jiné hodnoty způsobují umístění dané souřadnicemi. Souřadnice se udávají pomocí CSS vlasností left a top (popřípadě right a bottom).
Position: absolute
Omezující blok je normálně celá stránka (tag body). Dají se ale vytvořit nové omezující bloky -- tak, že se jim nastaví position: absolute nebo position: relative (vizte příklad zanořené pozice).
Position: relative je dobrá na tři věci:
Relativně pozicované prvky zůstávají v dokumentu a ostatní prvky ovlivňují, protože tam, kde by měly být původně, se udělá volné místo.
Position: fixed se chová jako position: absolute, ale pokud se dokumentem roluje, drží se prvek v okně na místě. Protože to nefunguje v Internet Exploreru, je to dnes (psáno 2003) skoro k ničemu.
Prohlížeč | Podpora ve verzích | Poznámka |
---|---|---|
4, 5, 5.5, 6 | IE 4 pouze pro tagy applet, button, div, fieldset, iframe, img, input, object, select, span, table a textarea | |
Mozilla (Netscape 6+) | všechny verze | do verze 1.2 chybuje občas s vnořovanými position: relative |
Opera | 5, 6, 7 | čtyřka asi umí relative |
Konqueror | ano | |
IE 5 / Mac | ano | |
Netscape Navigator 4 | ano | s náhodnými chybami |
Prohlížeč | Podpora hodnoty fixed |
---|---|
ne | |
Mozilla (Netscape 6+) | všechny verze kromě Netscape 6.0 |
Opera | 5, 6, 7 |
Konqueror | nevím |
IE 5 / Mac | ano |
Netscape Navigator 4 | ne |
Jednoduché posunutí kousku textu relativní pozicí o 4 pixely nahoru:
Normální text a <span style="position: relative; top: -4px">posunutý text</span> a zase normální text.
Užitečnější je absolutní pozice. Příklad zobrazení loga v levém horním rohu dokumentu, ať už je v html kdekoliv.
<style>
.logo {position: absolute; left: 1px; top: 1px}
</style>
Předchozí html text stránky (logo nemusí být první)
<div class="logo">
<a href="index.html">
<img src="logo.gif" style="width: 96px; height: 64px"></a>
</div>
Pomocí absolutní pozice se dá udělat design celé stránky: Příklad na left a position.
V normálním případě se umístění pozicovaného prvku počítá od horního levého rohu dokumentu. Dá se ale nastavit, že se bude počítat od jiného prvku. Tomu jinému prvku se říká myslím omezující blok. Jde o nadřazený prvek, který má nastavenu position absolute nebo relative.
Dejme tomu, že budu chtít mít blok textu (div) a v něm malý text (tag span) vždy v pravém horním rohu odstavce. Představte si ten malý textík třeba jako datum. HTML zápis vypadá takto:
<div class="omezujici">
Nornální text bla bla bla a
<span class="datum">
17. listopadu 2003
</span>
a nějaký další text.
</div>
Styl, který zařídí, že datum bude v textu vpravo nahoře:
<style>
.omezujici {position: relative}
.datum {position: absolute; top: 0px; right: 0px}
</style>
Podstatné je, že umístění data se vztahuje k okolnímu textu bez ohledu na to, kde je ve stránce umístěný. Zobrazit tento příklad na zanořenou pozici.
Centrovaný CSS pozicovaný design využívá toho, že vycentrovaný blok má nastavenou relativní pozici, takže vnořené prvky od něj počítají pozici.
Příklad sloupcového designu pozicováním
Neklikací odkaz v IE 6 strict (float + záporný margin) se řeší nastavením relativní pozice.
Layout pomocí pozicování a overflow
Ukázka absolutního pozicování a filtru matrix
CSS pozicování, primitivní příklad
Bug absolutního pozicování s marginem v Internet Exploreru
Left = souřadnice x počítaná zleva doprava, Top = souřadnice y počítaná shora dolů, Right = souřadnice x počítaná zprava doleva, Bottom = souřadnice y počítaná zdola nahoru, Z-index = priorita při překrývání, Clip = ostřihnutí pozicovaného prvku, Délky v CSS
o tvorbě, údržbě a zlepšování internetových stránek