Moderní tvorba webových aplikací
O webu

Fixní menu při rolování

Jak při odrolování stránky zafixovat menu na horní hraně obrazovky.

3 minuty

Obdobnou technikou jako u fixního postranního panelu lze zajistit i u vodorovného menu, aby se při odrolování o více než je jeho umístění odshora přilepilo k horní straně okna a tam zůstalo.

Zafixování se provede až přes CSS třídu, kterou nastaví JavaScript v momentě, kdy je vzdálenost navigace shora menší než hodnota, o kterou je už odrolováno.

Díky nastavování třídy místo element.style.position = "fixed" je pohodlnější upravování dalších stylů — při zafixování může být vhodné například menu zjednodušit nebo zmenšit.

Vycentrování menu

Trochu nešikovné je, že se fixní posice musí dopočítat od okrajů celého okna (ne od nadřazeného elementu s position: relative jako u absolutního posicování).

  1. První možnost je centrovat nastavením left: 50%, přesné šířky a záporného marginu o polovině šířky.
  2. Kromě toho je možné vytvořit fixní element se 100% šířkou, naposicovat ho do levého horního rohu (left: 0; top: 0) a až v rámci tohoto obalu centrovat navigaci. Potom není problém použít centrování přes margin: auto nebo text-align: center pro inline/inline-block elementy.

Fixní menu

Pokud navigace bude úplně nahoře (nebo tam, kde může být i při rolování – třeba vedle obsahu) už při načtení stránky, stačí samotné position: fixed bez JavaScriptové šaškárny.

A ještě…

… trochu vycpávky, aby se zafixování mohlo projevit.

Další hotová řešení

Co si myslíte o tomto článku?

Diskuse

Související články

CSS item-pack: balance – vyvážené rozložení flex položek

Vlastnost item-pack: balance rozděluje flex položky rovnoměrně mezi řádky, podobně jako text-wrap: balance vyvažuje řádky textu.

11 minut

CSS Container Queries – responsivní komponenty

Jak pomocí @container, container-type a container-name vytvářet komponenty, které se přizpůsobí velikosti svého rodiče místo viewportu.

16 minut

CSS Anchor Positioning – posicování elementů relativně k jiným

Jak pomocí anchor-name, position-anchor a funkce anchor() posicovat elementy relativně k jiným bez JavaScriptu.

6 minut

Centrování na webových stránkách

Moderní způsoby vertikálního i horizontálního centrování v CSS. Flexbox, Grid, margin auto a další techniky.

8 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata · Zkratky
2013–2026