:checked

:checked es una pseudo-clase que representa cuando un input tipo radio o checkbox está marcado o seleccionado por el usuario, es decir cuando entra en el estado activo (checked).

input[type="radio"]:checked + label {
	color: tomato;
}

Esto cambia dependiendo la acción del usuario, aunque igual podría aplicar con JavaScript o si el estado por default del input es checked.

Uso

El uso es muy simple, consta de verificar desde CSS si el estado es seleccionado o no.Y a partir de eso aplicar los estilos correspondientes. Algo así como una condicional if.

<div class="input-wrapper">
  <input type="radio" name="" id="radio">
  <label for="radio">Radio input</label>
</div>

<div class="input-wrapper">
  <input type="checkbox" name="" id="checkbox">
  <label for="checkbox">Checkbox input</label>
</div>
.input-wrapper {
	margin-right: 1rem;
}

input {
	margin-right: 0.2rem;
}

input:checked + label {
	font-size: 1.2rem;
    font-weight: 700;
    color: tomato;
}
Ejemplo en vivo

Esto es un simple ejemplo de como usar :checked, pero, no es todo, gracias a que se está verificando el estado de los inputs, se puede ir aún más allá, con algunos "Hacks" conectado <label> con radio u checkbox.

<div class="input-wrapper">
  <input type="radio" name="radio-input" id="radio-01">
  <label for="radio-01">Radio 01</label>
</div>

<div class="input-wrapper">
  <input type="radio" name="radio-input" id="radio-02">
  <label for="radio-02">Radio 02</label>
</div>

<div class="input-wrapper">
  <input type="radio" name="radio-input" id="radio-03">
  <label for="radio-03">Radio 03</label>
</div>
input {
  display: none;
}

label {
  cursor: pointer;
  border: 1px solid black;
  padding: 0.5rem 1rem;
  font-weight: 700;
  text-transform: uppercase;
  transition: 0.3s;
}

input:checked + label {
  background: tomato;
  color: white;
}
Ejemplo en vivo

Recursos

Comparte tu opinión o duda:
Se parte de mi newsletter

Compartiré contigo las últimas novedades del sitio y otros recursos sobre desarrollo web que no te puedes perder.