La pseudo-class :checked en CSS

26-01-2015 - Andrés Cruz

La pseudo-class :checked en CSS

Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos.

El selector de la pseudo-class :checked representa (permite seleccionar) a cualquier elemento HTML radio (<input type="radio">), checkbox (<input type="checkbox">) u option (<option> en un <select>): Fuente.

En otras palabras, podemos obtener cualquiera de los elementos HTML anteriormente citados que se encuentren "encendidos" con esta pseudo-class:

<input type = "checkbox" checked>
<input type = "radio" checked>
<option value="1" selected>option</option>

El selector checked es ideal para cambiar de estilo a las checkbox que son las casillas de verificación en los formularios de una manera sencilla sin emplear JavaScript y que funcionan muy bien al emplear las transiciones para los cambios de un estado a otro como hemos visto en otros tutoriales en los que hablamos de las transiciones en CSS:

Una vez obtenidos los elementos, es posible definir un nuevo estilo en los mismos, sus hijos, elementos HTML vecinos, etc; por ejemplo, en el caso de un formulario, podemos definir un estilo para el label hermano o adyacente al checkbox al cual se le a encendido:

input[type="checkbox"]:checked + label { 

}

Y por supuesto, puedes crear tus propias transiciones y de esta forma potenciar el aspecto visual sin emplear una línea de JavaScript de una manera muy sencilla.

El atributo for para activar elementos HTML

Existe un atributo que puede ser empleado en conjunto con los <label> llamado for que permite activar los elementos HTML checkboxs y radios con tan solo aplicar un clic en el label sin la necesidad de emplear JavaScript.

Realiza clics sobre los siguientes labels:











Cómo ves, es muy fácil emplear la pseudo selector CSS3 :checked para seleccionar uno o más elementos basándonos en si está o no seleccionado y potenciarlo con otros selectores, como el selector de hermandad +

Uso del atributo for en CSS

Para habilitar esta función solo debemos colocar el mismo valor del atributo id de los checkboxs y/o radios en el for del label.

Ejemplo del atributo for en CSS

<input id="arya-stark" type="checkbox" >
<label for="arya-stark">Arya Stark</label>

Dando estilo a los elementos encendidos mediante la pseudo-class :checked

Usando como base el HTML presentado anteriormente, es posible seleccionar los input que se encuentren encendidos con la siguiente selector:

input:checked{}

O el label adyacente al input "encendido":

input:checked + label{}

Dando estilo a los checkboxs y radios encendidos mediante la pseudo-class :checked

Aplicar una regla de estilo al label cuando el input de tipo checkbox se encuentra "encendido" (<input type = "checkbox" checked >) es tan sencillo como aplicar el siguiente selector:

input:checked + label{ color: #FFFFFF;}

Y en el caso de los elementos radios:

input:checked + label{ color: #FFFFFF;}

¿:unchecked con CSS?

En realidad no existe dicho selector, que por el nombre puedes imaginarte que sería el negado del selector anterior, es decir, cuando no está encendido o presionado el elemento, el que está de-seleccionado; para esto lo que puedes hacer es emplear el CSS base del elemento:

input[type="checkbox"] {
  // Unchecked Estilo
}
input[type="checkbox"]:checked {
  // Checked Estilo
}

O una versión equivalente de lo anterior:

input[type="checkbox"]:not(:checked) {
  // Unchecked Estilo
}

Aunque es agregar más ruido pero también es otra opción.


Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.

Conozca nuestros cursos sobre Laravel, CodeIgniter, Flutter, Electron, Django, Flask y muchos más!

Ver los cursos
¡Hazte afiliado en Gumroad!

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
!Web Alojada en Hostinger!