Umisťování
V této části se podíáme, jak lze pomocí CSS řídit polohu jednotlivých prvků na stránce. Standardně jsou prvky stránky formátovány v tak zvaném normálním toku (normal flow). Ten je veskrze poklidný – blokové prvky skládá hezky pod sebe, zatímco prvky řádkové jsou narovnány vedle sebe do řádků, jejichž šířka závisí na šířce obsahujícího bloku.
Vlastnost position
Chcete-li do této idyly zasáhnout, použijte vlastnost position
.
Jejím prostřednictvím můžete předepsat způsob (charakter) umístění prvku. O
jeho konkrétní poloze pak rozhodnou vlastnosti top
,
right
, bottom
a left
. Vlastnost
position
může nabývat následujících hodnot:
- static
Představuje normální tok dat. S prvkem se nedějí žádné revoluční věci a je umístěn podle pravidel popsaných výše. Jistě vás nepřekvapí, že
static
je výchozí hodnotou vlastnostiposition
.- relative
Relativní umístění. Prvek se posune vůči poloze, která by mu připadla v rámci normálního toku.
- absolute
Absolutní umístění. Prvek je vyjmut z běžného toku a přesunut na přesně zadanou pozici.
- fixed
Pevné umístění. Velmi se podobá absolutnímu, poloha se však vztahuje k oknu prohlížeče (případně k okrajům papíru při risku), nikoli k prvkům na stránce.
Určení polohy
Čtveřice vlastností top
, right
,
bottom
a left
určuje posunutí příslušného okraje
prvku vůči odpovídajícímu okraji, k němuž se umístění vztahuje. Takže
například
#menu { position: absolute; top: 0; left: 0; }
umístí menu do levého horního okraje stránky (jeho levý a horní okraj se posunou o nulovou vzdálenost vůči levému a hronímu okraji stránky, proti nimž je poloha určována). Naproti tomu definice
#menu { position: absolute; bottom: 0; right: 0; }
by je umístila do pravého dolního rohu.
Může to být poněkud matoucí, protože zvětšováním hodnoty top
posouváte prvek dolů a podobně. Vlastnost zkrátka odsouvá dotyčný
okraj, vkládá mezeru mezi jeho původní a novou pozici.
Hodnota může být i záporná. V tom případě působí stejně, jako stejně velká
kladná hodnota na protější straně. Pokud bych například chtěl horní index
(prvek <sup>
) posunout o 0,5 ex vzhůru, mám k dispozici
dvě rovnocenné cesty. Buď
sup { position: relative; bottom: 0.5ex; }
(posouvám nahoru, takže odsouvám spodní okraj) nebo
sup { position: relative; top: -0.5ex; }
zpět: pokročilé formátování