7.1. Pseudotřídy

Věděli jste, že je možné vytvářet interaktivní efekt pomocí CSS? K tomu, aby toto bylo možné, vznikly pseudotřídy. Poznáme je podle toho, že jsou vždy na konci selektoru, a začínají dvojtečkou.

selektor:pseudotřída {
  vlastnost: hodnota;
}

Pseudotřídy mají oblikle vliv na aktuální stav elementu, např. vůči kurzoru:

/*
Odkaz, který už byl uživatelem navštíven.
*/
a:visited {
  color: purple;
}

/*
Odkaz, nad kterým je kurzor myši.
*/
a:hover {
  color: red;
}

/*
Odkaz, nad kterým je tzv. focus - vybrání (např. pomocí klávesnice).
*/
a:focus {
  color: navy;
}

/*
Aktivní odkaz, tj. při kliknutí
*/
a:active {
  color: green;
}
<a href="http://geekgirlscarrots.org">Hej! Já jsem odkazem na karotky!</a>

Hej! Já jsem odkazem na karotky!

Různé pseudotřídy můžeme aplikovat na různé elementy, v závislosti na jejich vlastnostech. Například pro elementy typu <input> a <button> existuje pseudotřída :disabled, <input type="checkbox"> má pseudotřídu :checked, ale našli bychom i další.

Zajímavé druhy pseudotříd jsou :first-child, :last-child, a :nth-child(). Asi tušíte, že nám pomáhaví vybírat prvky v závislosti na tom, kde se vyskytují vzhledem k mateřskému prvku. Podívejme se tedy opět na nákupní seznam:

<ul class="shopping-list">
  <li>Jablka</li>
  <li>Banány</li>
  <li>Švestky</li>
  <li>Pomeranče</li>
  <li>Mango</li>
  <li>Petržel</li>
  <li>Celer</li>
  <li>Pórek</li>
  <li>Mrkev</li>
  <li>Cibule</li>
</ul>
/* Vybereme první prvek li v .shopping-list */
.shopping-list li:first-child {
  font-weight: bold;
}

/* Vybereme poslední prvek li v .shopping-list */
.shopping-list li:last-child {
  text-decoration: line-through;
}

/* Vybereme třetí li element */
.shopping-list li:nth-child(3) {
  color: deeppink;
}
  • Jablka
  • Banány
  • Švestky
  • Pomeranče
  • Mango
  • Petržel
  • Celer
  • Pórek
  • Mrkev
  • Cibule

Pseudotřída :first-child a :last-child vypadá celkem pochopitelně. Ovšem :nth-child() nám nabízí více možností. Umožňuje zvolit všechny sudé prvky (:nth-child(even)), liché (:nth-child(odd)), třetí prvek (:nth-child(3)), každý třetí prvek (:nth-child(3n)), nebo například 4, 7, a 10 prvek (:nth-child(3n+1))

results matching ""

    No results matching ""