Zvýraznění aktivní kotvy

Selektor :target

Od Internet Exploreru 9 (včetně) lze použít jednoduché řešení bez JavaScriptu v prostém CSS:

:target {background: #FFCFA4;}

Po kliknutí se v podporovaných zařízeních celý tento blok zvýrazní. (Zrušit.)

Využití

Kromě zvýraznění aktivní kotvy lze :target použít k vytvoření „záložek“ přepínatelných bez načítání dalších stránek.

  • HTML
  • CSS
  • JS
  • PHP
  • HTML je značkovací jazyk.

    CSS není značkovací jazyk.

    JavaScript je klientský skriptovací jazyk.

    PHP je serverový skriptovací jazyk.

    Podobného efektu lze dosáhnout i bez použití :targetu. Stačí jednotlivým záložkám (elementy .tab) nastavit pevnou výšku. Jejich rodiči (element .tabs) overflow: hidden + tutéž pevnou výšku a zbytek už zařídí odkazy na kotvy.

    První
    Druhý
    Třetí

    Odkaz na druhý, třetí a první.

    Zvýraznění kotvy pomocí JS

    Pro starší prohlížeče nezbývá než na :target zapomenout a do CSS přidat zvláštní .target třídu.
    :target, .target {/* styly pro zvýraznění */}
    A tu potom přidávat JavaScriptem v závislosti na hodnotě kotvy, která se nachází v location.hash.

    Stačí-li zvýraznění jen po načtení stránky, kód je velmi prostý.

    var hash = location.hash.substr(1); // první znak je #
    var element = document.getElementById(hash);
    if (element) {
    	element.className+= " target";
    }

    Má-li JavaScript reagovat na průběžnou změnu hashe lze používat od IE 8 včetně window.onhashchange a pro starší časovač. Nebo mít používané hashe u elementů s přesnou výškou v nějakém neviditelném objektu a tam odchytávat onscroll.

    Testovat dostupnost onhashchange lze pomocí.

    if ("onhashchange" in window) {
    	// onhashchange funguje
    }

    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ářů ↓

    Označení externích odkazů

    Označení interních a externích odkazů

    Odlišení interních a externích odkazů a odkazů na soubory čistě v CSS.

    Odkaz na kotvu a fixní menu

    Odkaz na kotvu a fixní hlavička

    Při použití fixního menu/hlavičky se stane nepěkná věc, že při odkazu na kotvu je cíl skryt pod menu. Co s tím?

    Poskakování kvůli scrollbaru

    Poskakování stránky kvůli posuvníku

    Jak zabránit, aby obsah stránky poskakoval v závislosti na posuvníku.

    Barva podle odrolování na stránce

    Barva podle odrolování na stránce

    Jak pouze v CSS měnit pozadí elementu v závislosti na odscrollování na stránce.

    Selektory :first-child a :last-child

    Selektory :first-child a :last-child

    Pro zaměření první/poslední položky v CSS lze místo přidávání tříd použít :first/last-child.

    Komentáře