Użyj atrybutu HTML switch w elemencie <input type="checkbox" switch> z powiązanym elementem <label>, aby utworzyć binarny przełącznik, który zachowuje natywne przesyłanie formularzy, nawigację za pomocą klawiatury i semantykę czytnika ekranu (zobacz Styling Checkboxes i Forms).
Znacznik
Dodaj atrybut logiczny switch do standardowego pola wyboru:
<label>
Enable notifications
<input id="notifications" type="checkbox" switch>
</label>
- Etykieta może otaczać element wejściowy lub być powiązana z
for/id. Wszystkie style są stosowane do elementu wejściowego, więc nie zależą od struktury etykiety. - Gdy to pole jest zaznaczone, dane wejściowe przesyłają standardową wartość pola wyboru. W języku JavaScript nasłuchuj zdarzeń
change(lubinput) i odczytuj.checkedzamiast.value.
Styl
Dostosuj kolor wyróżnienia elementu sterującego za pomocą accent-color (patrz Formularze zgodne z marką) i upewnij się, że styl zaznaczenia jest widoczny:
input[type="checkbox"][switch] {
accent-color: var(--accent-color, #1769e0);
margin: 0;
cursor: pointer;
}
input[type="checkbox"][switch]:focus-visible {
outline: 3px solid var(--focus-color, #ff8c00);
outline-offset: 4px;
}
Strategie zastępcze
Kreacje zastępcze i obsługa przełączników przez przeglądarki
Jeśli Twój cel Baseline nie obsługuje <input type="checkbox" switch>, wczytuj input-switch-polyfill tylko wtedy, gdy 'switch' in HTMLInputElement.prototype to false. Nie wczytuj polyfilla bezwarunkowo. Polyfill ulepsza pola wyboru z atrybutem switch, ustawiając role="switch", stosując styl przełącznika (appearance: none), synchronizując obliczone accent-color i zapewniając obsługę przeciągania wskaźnika.
Użyj metody wczytywania pakietów odpowiedniej dla Twojego projektu. W przykładzie poniżej zakładamy, że Twoja konfiguracja może rozpoznawać specyfikatory modułów:
if (!('switch' in HTMLInputElement.prototype)) {
import('input-switch-polyfill');
}
Kreacje zastępcze i obsługa koloru uzupełniającego w przeglądarkach
Właściwość accent-color jest progresywnym ulepszaniem.
Przeglądarki, które nie obsługują tej właściwości, zignorują ją i użyją domyślnych kolorów interfejsu.