Input hack en CSS: toggles y menús sin JavaScript

Usa checkbox/radio + selectores para crear interacciones simples en CSS, entendiendo límites de accesibilidad y mantenibilidad.

El input hack permite mostrar/ocultar bloques usando estados nativos de formulario y selectores CSS.

Es útil para prototipos, acordeones simples y menús básicos donde no necesitas lógica compleja.

Debe usarse con criterio: para estados avanzados o accesibilidad completa, JavaScript suele ser mejor opción.

  • Checkbox oculto + label + selector :checked.
  • El <code>label</code> activa el checkbox asociado; luego CSS reacciona con <code>:checked</code> para modificar otros elementos.
  • Normalmente se usa el combinador de hermanos <code>+</code> o <code>~</code> para llegar al panel que quieres alternar.
  • No todo estado interactivo debería resolverse con hack.
  • Evita cadenas de selectores demasiado frágiles o dependientes del orden exacto del HTML.

Patrón base

Checkbox oculto + label + selector :checked.

El <code>label</code> activa el checkbox asociado; luego CSS reacciona con <code>:checked</code> para modificar otros elementos.

Normalmente se usa el combinador de hermanos <code>+</code> o <code>~</code> para llegar al panel que quieres alternar.

Límites y buenas prácticas

No todo estado interactivo debería resolverse con hack.

Evita cadenas de selectores demasiado frágiles o dependientes del orden exacto del HTML.

Si necesitas cerrar al pulsar Escape, gestionar foco o sincronizar varios estados, usa JavaScript.

  • Mantén marcado semántico y labels claros.
  • No abuses de inputs ocultos para lógica compleja.
  • Para componentes críticos, prioriza accesibilidad completa.
CSS
56

Input hack en CSS: toggles y menús sin JavaScript

Usa checkbox/radio + selectores para crear interacciones simples en CSS, entendiendo límites de accesibilidad y mantenibilidad.

Código del tema: display: grid; gap: 1rem;

📘 Teoría

Patrón base

Checkbox oculto + label + selector :checked.

1

El label activa el checkbox asociado; luego CSS reacciona con :checked para modificar otros elementos.

2

Normalmente se usa el combinador de hermanos + o ~ para llegar al panel que quieres alternar.

Límites y buenas prácticas

No todo estado interactivo debería resolverse con hack.

Evita cadenas de selectores demasiado frágiles o dependientes del orden exacto del HTML.

Si necesitas cerrar al pulsar Escape, gestionar foco o sincronizar varios estados, usa JavaScript.

  • Mantén marcado semántico y labels claros.
  • No abuses de inputs ocultos para lógica compleja.
  • Para componentes críticos, prioriza accesibilidad completa.

🧪 Aprende probando

Ejemplo Demo: FAQ sin JavaScript Un acordeón simple con checkbox y :checked.

🏁 Retos

Reto Reto: menú móvil CSS-only Muestra .menu cuando #nav-toggle esté checked.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre CSS.

Test de CSS

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com