Comment on page

Pseudoklasy CSS

Czy wiecie, że możecie tworzyć interaktywne efekty za pomocą CSS? Poznajcie pseudoklasy! Można je rozpoznać po charakterystycznym dwukropku przed nazwą – :.
selektor:pseudoklasa {
właściwość: wartość;
}
Pseudoklasy zazwyczaj dotyczą stanu, w jakim może znajdować się dany element. Przykładowo, w przypadku linków mogą to być:
/*
Link odwiedzony przez użytkownika
*/
a:visited {
color: purple;
}
/*
Link, nad którym znajduje się kursor myszy
*/
a:hover {
color: red;
}
/*
Link, na którym jest ustawiony fokus
(np. za pomocą klawiatury)
*/
a:focus {
color: navy;
}
/*
Link, który w danym momencie jest aktywny
*/
a:active {
color: green;
}
<a href="http://theawwwesomes.org">Hej! Jestem linkiem!</a>
Kiedy na przykład najedziemy kursorem myszy na nasz element, zmieni on swój kolor na czerwony.
Różne pseudoklasy możemy aplikować dla różnych elementów, w zależności od ich własności.
/*
Wyszarzenie przycisku,
którego działanie blokujemy
dla użytkownika
*/
button:disabled {
border: 1px solid gray;
color: rgb(133, 133, 133);
background-color: rgba(198, 198, 198, 0.8);
}
/*
Nadanie tła etykietom,
wewnątrz których checkboksy
zostały zaznaczone
*/
label > input[type="checkbox"]:checked {
background: lightblue;
}
Ciekawymi typami pseudoklas są :first-child, :last-child oraz :nth-child(). Zapewne domyślacie się już, że pomagają nam one wybrać elementy w zależności od tego, w którym miejscu występują wobec nadrzędnego elementu. Zaprezentujmy działanie powyższych selektorów na przykładzie… listy zakupów!
<label>Do kupienia:</label>
<ul class="shopping-list">
<li>Cukier</li>
<li>Mąka</li>
<li>Makaron</li>
<li>Chleb razowy</li>
<li>Jajka</li>
<li>Jogurt naturalny</li>
<li>Pomidory</li>
</ul>
/*
Wskaż pierwszy element listy
*/
.shopping-list li:first-child {
font-weight: bold;
}
/*
Wskaż ostatni element listy
*/
.shopping-list li:last-child {
text-decoration: line-through;
}
/*
Wskaż trzeci element listy
*/
.shopping-list li:nth-child(3) {
color: deeppink;
}
Do kupienia:
  • Cukier
  • Mąka
  • Makaron
  • Chleb razowy
  • Jajka
  • Jogurt naturalny
  • Pomidory
Pseudoselektor :first-child pozwala nam na wskazanie pierwszego elementu na liście, :last-child natomiast ostatniego. :nth-child() jest nieco bardziej uniwersalny, ponieważ wewnątrz nawiasów () możemy podać dowolną liczbę naturalną a także warunek, który powinien spełniać element. Przykładowo :nth-child(2n) wskaże wszystkie elementy zajmujące parzyste pozycje na liście, a nth-child(2n + 1) – nieparzyste.
Pełną listę dostępnych pseudoklas (a jest ona całkiem długa!) możecie znaleźć na MDN.