Šířka posuvníku

Rolovací lišta (posuvník, scrollbar) je nedílnou součástí stránky v desktopových prohlížečích v případě, že se obsah nevejde do vymezeného prostoru.

Posuvník ubírá prostor pro stránku – zmenšuje viewport.

To může způsobovat poskakování stránky v případech, kdy:

  1. Na webu jsou hodně krátké stránky, které posuvník nepotřebují. Při přechodu mezi dlouhou stránkou s posuvníkem a krátkou obsah poskočí.

  2. U vyskakovacího překryvného obsahu (tzv. lightboxu) se zpravidla blokuje možnost rolovat v původní stránce.

    To se dělá přes overflow: hidden, což posuvník odstraní.

Kromě toho prostor ubraný posuvníkem nemá vliv na @media pravidla. Media queries se tak aplikují i v případě, že je viewport fakticky menší právě o šířku scrollbaru.

Rozměry posuvníku

Aktuální šířka posuvníku je: pixelů

Posuvníky ve Windows 10 mají v Chrome, Firefoxu, Internet Exploreru šířku 17 pixelů.

V Opeře na Windows 10 potom 15 pixelů.

Další výjimkou je Edge s šířkou 12 pixelů.

V mobilních prohlížečích a na OS X se potom posuvník zobrazuje jen někdy (když se začne rolovat) a neubírá prostor pro stránku. V těchto zařízeních by se měla ukazovat nula.

Nejrozmanitější je velikost rolovacích lišt v Linuxu, například v Ubuntu 14.04 má posuvník ve Firefoxu 15 pixelů a v Chrome jen 13.

Zobrazuje se vám nějaká jiná šířka nebo pozorujete jiné chování? Dejte mi prosím vědět do komentářů.

Zjištění šířky posuvníku

Na nějakou universální šířku tedy nejde spoléhat. Maximálně jde orientačně vycházet z toho, že posuvník má šířku do cca 20 pixelů.

Pokud je potřeba počítat s přesnými rozměry, je nutné rozměr posuvníku spočítat v konkrétním prohlížeči.

Jak?

Výpočet šířky posuvníku

Třeba změřit šířku obyčejného <div>u a potom jinému <div>u natvrdo přidat posuvník pomocí overflow-y: scroll, dát do něj další <div>, který už bude užší o šířku scrollbaru.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Zvýraznění aktivní kotvy

Zvýraznění aktivované kotvy (:target)

Pokud se v rámci stránky používají odkazy na jednotlivé #části, může být vhodné zvýrazněním ukázat, kam odkaz mířil.

Odrolování na element

Odrolování na určitý HTML tag

Nestačí-li běžné odrolování na HTML #kotvu, přichází na řadu JavaScript.

Zvýraznění podle rolování

Označení odkazu na kotvu, pokud je na ní odrolováno

U jednostránkových webů s fixní navigací (s odkazy na #kotvy) může být vhodné právě viditelnou (aktivní) položku zvýraznit.

Zakázat rolování stránky

Jak zakázat scrollování na stránce

Někdy se hodí zamezit uživateli v rolování, jaké existují možnosti?

Změna location.hash bez odrolování stránky

Změna location.hash bez posunu stránky

Jak změnit location.hash bez posunutí stránky.

Komentáře