CSS :has() pseudo-selector

CSS:

li {
  list-style-type: none;
  padding: 10px;
  margin: 0 0 10px 0;
  border: 2px solid #777;
  border-radius: 5px;
}

input, label {
  cursor: pointer;
}

li input:checked {
  accent-color: red;
}

li:has(input:checked) {
  border-color: red;
}

HTML:

<ul>
  <li>
    <input type="radio" id="option1" name="options" checked>
    <label for="option1">Option 1</label>
  </li>
  <li>
    <input type="radio" id="option2" name="options">
    <label for="option2">Option 2</label>
  </li>
  <li>
    <input type="radio" id="option3" name="options">
    <label for="option3">Option 3</label>
  </li>
</ul>

<ul>
  <li>
    <input type="checkbox" id="checkbox1" checked>
    <label for="checkbox1">Checkbox 1</label>
  </li>
  <li>
    <input type="checkbox" id="checkbox2">
    <label for="checkbox2">Checkbox 2</label>
  </li>
</ul>

Leave a Comment