Pseudoklasy :user-valid i :user-invalid

:user-valid

Obsługa przeglądarek

  • Chrome: 119.
  • Edge: 119.
  • Firefox: 88.
  • Safari: 16.5.

Źródło

:user-invalid

Obsługa przeglądarek

  • Chrome: 119.
  • Edge: 119.
  • Firefox: 88.
  • Safari: 16.5

Źródło

Dane wprowadzane przez użytkownika to jeden z najbardziej wrażliwych elementów każdego interfejsu. Użyteczność aplikacji musi pomagać użytkownikom w dane wejściowe. Selektory pseudoklasy :user-valid i :user-invalid pomagają w ulepszaniu wrażenia użytkowników dotyczące weryfikacji danych wejściowych, podając tylko informacje o błędach; gdy użytkownik zmieni dane wejściowe. Dzięki tym nowym selektorom nie zobaczysz już, na napisanie kodu stanowego w celu śledzenia zmian wprowadzonych przez użytkownika.

Selektory pseudoklas interakcji użytkownika

Selektory pseudoklas :user-valid:user-invalid są podobne do istniejących pseudoklas :valid:invalid. Oba pasują do elementu formularza na podstawie tego, czy jego bieżąca wartość spełnia ograniczenia walidacji. Jednak Zaletą nowych pseudoklas :user-valid i :user-invalid jest to, pasują do elementu sterującego formularza tylko wtedy, gdy użytkownik wszedł w interakcję z dane wejściowe.

Wymagany i pusty element sterujący formularza pasuje do wyrażenia :invalid nawet wtedy, gdy użytkownik nie zaczął interakcji ze stroną. Jednak ten sam element formularza nie będzie pasował do wartości :user-invalid, dopóki użytkownik nie zmieni danych wejściowych i nie pozostawi ich w nieprawidłowym stanie.

Użyj pseudoklasy :user-valid i :user-invalid

Użyj tych pseudoklas, aby dostosować styl elementów sterujących do wprowadzania danych, zaznaczania i zaznaczania pól tekstowych, tak jak pokazano to w przykładzie. w tych przykładach:

input:user-valid,
select:user-valid,
textarea:user-valid {
  border-color: green;
}

input:user-invalid,
select:user-invalid,
textarea:user-invalid {
  border-color: red;
}
<input required="required" />

<select required="required">
  <option value="">Choose an option</option>
  <option value="1">One</option>
</select>

<textarea required="required"></textarea>

Obraz łączący 3 zrzuty ekranu obok siebie w celu porównania. Każdy zrzut ekranu przedstawia formularz internetowy z tymi samymi opcjami wprowadzania, wyboru i obszaru tekstowego. Pierwszy zrzut ekranu przedstawia formularz w pierwotnym stanie, zanim użytkownik wprowadzi jakiekolwiek dane. Ramki elementów są szare, a tekst pomocy poniżej informuje, że każdy element będzie obecnie pasował do selektora pseudoklasy :invalid. Drugi zrzut ekranu przedstawia to samo pole po wprowadzeniu przez użytkownika danych w każdym elemencie sterującym. Ramki elementów sterujących są zielone, a tekst pomocy poniżej wyjaśnia, że każdy element sterujący jest obecnie zgodny z pseudoselektorami pseudoklasy :valid i :user-valid. Trzeci i ostatni zrzut ekranu pokazuje to samo pole po usunięciu przez użytkownika wszystkich danych. Ramki elementów sterujących są czerwone, a tekst pomocy poniżej informuje, że każdy element sterujący będzie obecnie pasował do pseudoselektorów klas :invalid i :user-invalid.

Selektory dopasowują się na podstawie kombinacji interakcji użytkownika i ograniczeń walidacji. Aby zobaczyć, jak działają te funkcje, zapoznaj się z poniżej prezentacją:

Większa wygoda użytkowników dzięki mniejszej ilości kodu

Bez tych pseudoklas, osiągnięcie wygody użytkowników przez Przeglądarki :user-valid i :user-invalid wymagały napisania dodatkowego kodu stanowego. Ten kod jest potrzebny do śledzenia początkowej wartości, bieżącego stanu fokusa pola wejściowego, zakresu zmian wartości wprowadzonych przez użytkownika, dodatkowego sprawdzania poprawności i dodania klasy do wybrania do stylizacji. Teraz możesz polegać na przeglądarce, która zrobi to automatycznie.

Więcej zasobów

Zdjęcie na okładce: Behzad Ghaffarian z Unsplash.