Más y más últimamente he visto a desarrolladores que utilizan trucos para crear estados de conmutación utilizando CSS puro. Esto le permite omitir el JavaScript sin sacrificar la interacción. ¿Como funciona esto? ¿Es una práctica aceptable?
Hoy vamos a examinar dos métodos distintos para utilizar una casilla de verificación para crear un evento de clic que intercambia entre dos imágenes usando buen HTML antiguo y CSS. Terminaremos con una breve discusión sobre la semántica y las ventajas y desventajas de esta técnica.
Como pelar un gato
"Esencialmente creas una casilla de verificación en HTML solo para ocultarlo y robar su funcionalidad".Con cualquier truco de CSS, siempre hay un puñado de formas diferentes para llevar a cabo la tarea que desea lograr. Lo que haremos hoy aquí es aprender cómo utilizar las casillas de verificación para crear dos estados que se pueden alternar entre usar solo HTML y CSS. Dado ese objetivo, podemos encontrar fácilmente al menos dos formas de lograrlo. Incluso dentro de esas dos estrategias principales, encontrará que hay varios caminos que podríamos tomar.
Ambos métodos implican algunos trucos CSS cuestionables. Básicamente, creas una casilla de verificación en HTML solo para ocultarlo y robar su funcionalidad. El primer método simplemente extiende la casilla de verificación al tamaño completo del área que le gustaría hacer clic y no utiliza ninguna etiqueta.
El segundo método hace uso de la interesante funcionalidad de las etiquetas asociadas con una casilla de verificación. Incluso si oculta la casilla de verificación, la etiqueta se puede diseñar, posicionar y hacer clic para activar el interruptor, lo que nos brinda un elemento completamente flexible con el que trabajar que tiene dos estados posibles.
Vamos a profundizar y echar un vistazo más de cerca a cada uno de estos métodos.
Método 1
La primera forma en que vamos a atacar este experimento es haciendo que nuestra casilla de verificación coma todo el tamaño de nuestro objeto y luego lo oculte. Para hacer que esto funcione, todo lo que técnicamente necesita es un div que contenga una casilla de verificación con una clase aplicada. Si desea ir más lejos, puede agregar otros atributos como "nombre". También lanzaremos una imagen para que tengamos algo que cambiar.