Pseudoklasa CSSPseudoklasy

:active

Pasuje do elementu w chwili aktywacji, najczęściej gdy przycisk myszy jest wciśnięty nad przyciskiem lub linkiem.

Na tej stronie

Przykład

#
CSS
.btn {
  box-shadow: 0 4px 0 #4c1d95;
  transition: transform 0.08s, box-shadow 0.08s;
}

.btn:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #4c1d95;
}
Podgląd

Wciśnij przycisk i przytrzymaj: zjeżdża w dół, a cień pod nim znika, jak w prawdziwym klawiszu.

Definicja i zastosowanie

#

Pseudoklasa :active trwa bardzo krótko: od wciśnięcia przycisku myszy (albo dotknięcia ekranu) do jego puszczenia. To moment naciśnięcia przycisku, dlatego nadaje się do efektu fizycznego wciśnięcia, na przykład lekkiego zmniejszenia albo przesunięcia w dół.

Najczęściej stosuje się ją do przycisków i linków. Dla użytkownika to potwierdzenie, że kliknięcie zostało zauważone, jeszcze zanim strona zareaguje na nie w inny sposób.

Kolejność reguł ma znaczenie. :active powinna stać po :hover, bo podczas kliknięcia oba stany obowiązują jednocześnie, a przy równej specyficzności wygrywa późniejsza reguła. Stąd znana kolejność dla linków: :link, :visited, :hover, :active.

Składnia

#
Składnia
selektor:active { właściwość: wartość; }

Efekty wciśnięcia

#
  • scale(0.95)

    Przycisk lekko się zmniejsza, jak wciśnięty klawisz. Wciśnij go i przytrzymaj.
  • inset box-shadow

    Wewnętrzny cień sprawia wrażenie, że przycisk się zagłębił.
  • brightness(0.8)

    Przyciemnienie w chwili kliknięcia. Działa z każdym kolorem tła.
  • :hover, potem :active

    Najpierw najedź, potem wciśnij. Reguła :active stoi niżej, więc podczas kliknięcia wygrywa z :hover.

Efekty wciśnięcia w praktyce

#

scale(0.95)

Przycisk lekko się zmniejsza, jak wciśnięty klawisz. Wciśnij go i przytrzymaj.
.demo:active { transform: scale(0.95); }

inset box-shadow

Wewnętrzny cień sprawia wrażenie, że przycisk się zagłębił.
.demo:active {
  box-shadow: inset 0 3px 8px rgb(0 0 0 / 0.5);
}

brightness(0.8)

Przyciemnienie w chwili kliknięcia. Działa z każdym kolorem tła.
.demo:active { filter: brightness(0.8); }

:hover, potem :active

Najpierw najedź, potem wciśnij. Reguła :active stoi niżej, więc podczas kliknięcia wygrywa z :hover.
.demo:hover { background: #6d28d9; }
.demo:active { background: #4c1d95; }

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Efekt :active rób krótki i subtelny, z przejściem około 50 do 100 ms. Dłuższa animacja nie zdąży się pokazać, bo przycisk szybko zostaje puszczony.
  • Umieszczaj :active po :hover w arkuszu, inaczej przy równej specyficzności efekt kliknięcia zostanie zasłonięty.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.