Sempre più di recente ho visto sviluppatori che utilizzano trucchi per creare stati di commutazione usando puro CSS. Questo ti permette di saltare il JavaScript senza sacrificare l'interazione. Come funziona? È una pratica accettabile?
Oggi esamineremo due metodi distinti per l'utilizzo di una casella di controllo per creare un evento click che scambia tra due immagini utilizzando il buon vecchio HTML e CSS. Concluderemo con una breve discussione sulla semantica e i pro / contro di questa tecnica.
Come scuoiare un gatto
? In pratica si crea una casella di controllo in HTML solo per nasconderlo e rubarne la funzionalità.?Con qualsiasi trucco CSS, ci sono sempre una manciata di modi diversi per realizzare il compito che stai mirando a raggiungere. Quello che faremo qui oggi è imparare come utilizzare le checkbox per creare due stati che possono essere alternati usando solo HTML e CSS. Dato questo obiettivo, possiamo facilmente arrivare con almeno due modi per realizzarlo. Anche all'interno di queste due strategie principali, scoprirai che ci sono più strade che potremmo prendere.
Entrambi i metodi implicano alcuni discutibili trucchi CSS. In sostanza, crei una casella di controllo in HTML solo per nasconderlo e rubarne la funzionalità. Il primo metodo semplicemente allunga la casella di controllo alla dimensione totale dell'area che desideri rendere cliccabile e non utilizza alcuna etichetta.
Il secondo metodo utilizza l'interessante funzionalità delle etichette associate a una casella di controllo. Anche se si nasconde la casella di controllo, l'etichetta può essere effettivamente disegnata, posizionata e cliccata per attivare l'interruttore, dandoci un elemento completamente flessibile per lavorare con due stati possibili.
Entriamo e osserviamo da vicino ciascuno di questi metodi.
Metodo 1
Il primo modo per attaccare questo esperimento è quello di fare in modo che la nostra casella di controllo diventi tutta la dimensione del nostro oggetto e poi lo nasconda. Per fare questo, tutto ciò che serve tecnicamente è un div che contiene una casella di controllo con una classe applicata. Se vuoi andare oltre, puoi aggiungere altri attributi come? Nome ?. Inseriremo anche un'immagine, quindi avremo qualcosa da attivare.