Pseudoklasa CSSPseudoklasy

:disabled

Pasuje do wyłączonych elementów formularza, czyli takich, których nie da się kliknąć, zaznaczyć ani edytować.

Na tej stronie

Przykład

#
CSS
.btn {
  background: #7c3aed;
  transition: opacity 0.2s;
}

.btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
Podgląd

Zaznacz zgodę. Skrypt zdejmuje z przycisku atrybut disabled, a CSS od razu przestaje go wyszarzać.

Definicja i zastosowanie

#

Pseudoklasa :disabled wybiera kontrolki z atrybutem disabled: przyciski, pola input, listy select, pola textarea, a także option, optgroup i fieldset. Wyłączony element nie reaguje na kliknięcia, nie dostaje fokusu i nie jest wysyłany razem z formularzem.

Wyłączenie przechodzi też przez <fieldset disabled>: wszystkie kontrolki w środku pasują wtedy do :disabled, poza tymi w pierwszej legendzie. Przeciwieństwem :disabled jest :enabled, która pasuje do kontrolek aktywnych.

Przeglądarki domyślnie wyszarzają wyłączone kontrolki, ale przy własnym wyglądzie trzeba o to zadbać samemu. Typowy zestaw to obniżona nieprzezroczystość i kursor not-allowed. Pamiętaj, że :disabled nie działa dla linków ani dla elementów oznaczonych tylko aria-disabled="true"; do nich użyj selektora atrybutu.

Składnia

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

Typowe zastosowania

#
  • :disabled

    Wyłączone kontrolki są przygaszone, a kursor nad nimi pokazuje zakaz. Najedź, żeby sprawdzić.
  • button:enabled:hover

    Efekt najechania tylko dla aktywnych przycisków, dzięki przeciwnej pseudoklasie :enabled. Wyłączony nie reaguje.
  • input:disabled

    Przerywana ramka i przygaszony tekst jasno mówią, że wyłączonego pola nie da się edytować.

Typowe zastosowania w praktyce

#

:disabled

Wyłączone kontrolki są przygaszone, a kursor nad nimi pokazuje zakaz. Najedź, żeby sprawdzić.
:disabled { opacity: 0.45; cursor: not-allowed; }

button:enabled:hover

Efekt najechania tylko dla aktywnych przycisków, dzięki przeciwnej pseudoklasie :enabled. Wyłączony nie reaguje.
button:enabled:hover { background: #5b21b6; }

input:disabled

Przerywana ramka i przygaszony tekst jasno mówią, że wyłączonego pola nie da się edytować.
input:disabled { border-style: dashed; color: #71717a; }

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

#
  • Wyłączony przycisk nie mówi, dlaczego jest wyłączony. Dodaj obok krótką podpowiedź albo zostaw przycisk aktywny i pokaż komunikat po kliknięciu.
  • Nie przesadzaj z przezroczystością: kontrolka ma wyglądać na nieaktywną, ale jej tekst nadal musi dać się przeczytać.
  • Całą sekcję formularza wyłączysz jednym atrybutem na <fieldset disabled>. Wszystkie pola w środku od razu pasują do :disabled.

Powiązane hasła

#

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