Spec-Zone.ru › CSS

Псевдокласс CSS `:checked`

Базовая поддержка Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она поддерживается браузерами с июля 2015 года.

Селектор :checked — это CSS-псевдокласс, который соответствует любому отмеченному или переключённому в состояние on элементу radio (<input type="radio">), checkbox (<input type="checkbox">) или option (<option> внутри элемента <select>).

Попробуйте

label,
input[type="submit"] {
  display: block;
  margin-top: 1em;
}

input:checked {
  border: none;
  outline: 2px solid deeppink;
}
<form>
  <p>How did you find out about us?</p>
  <label
    ><input name="origin" type="radio" value="google" checked /> Google</label
  >
  <label><input name="origin" type="radio" value="facebook" /> Facebook</label>
  <p>Please agree to our terms:</p>

  <label
    ><input name="newsletter" type="checkbox" checked /> I want to subscribe to
    a personalized newsletter.</label
  >

  <label
    ><input name="privacy" type="checkbox" /> I have read and I agree to the
    Privacy Policy.</label
  >

  <input type="submit" value="Submit form" />
</form>

Пользователь может активировать это состояние, отметив или выбрав элемент, либо деактивировать его, сняв отметку или отменив выбор.

Примечание: Поскольку браузеры часто считают элементы <option> заменяемыми элементами (replaced elements), возможности их стилизации с помощью псевдокласса :checked различаются в разных браузерах. Функциональность настраиваемого элемента select позволяет полностью настраивать элементы <option>, как и любые обычные элементы DOM, в браузерах, которые её поддерживают.

Синтаксис

:checked {
  /* ... */
}

Примеры

Простой пример

HTML

<div>
  <input type="radio" name="my-input" id="yes" value="yes" />
  <label for="yes">Yes</label>

  <input type="radio" name="my-input" id="no" value="no" />
  <label for="no">No</label>
</div>

<div>
  <input type="checkbox" name="my-checkbox" id="opt-in" />
  <label for="opt-in">Check me!</label>
</div>

<select name="my-select" id="fruit">
  <option value="opt1">Apples</option>
  <option value="opt2">Grapes</option>
  <option value="opt3">Pears</option>
</select>

CSS

div,
select {
  margin: 8px;
}

/* Labels for checked inputs */
input:checked + label {
  color: red;
}

/* Radio element, when checked */
input[type="radio"]:checked {
  box-shadow: 0 0 0 3px orange;
}

/* Checkbox element, when checked */
input[type="checkbox"]:checked {
  box-shadow: 0 0 0 3px hotpink;
}

/* Option elements, when selected */
option:checked {
  box-shadow: 0 0 0 3px lime;
  color: red;
}

Результат

Переключение элементов с помощью скрытого флажка

В этом примере используется псевдокласс :checked, чтобы пользователь мог переключать содержимое в зависимости от состояния флажка, не используя JavaScript.

HTML

<input type="checkbox" id="expand-toggle" />

<table>
  <thead>
    <tr>
      <th>Column #1</th>
      <th>Column #2</th>
      <th>Column #3</th>
    </tr>
  </thead>
  <tbody>
    <tr class="expandable">
      <td>[more text]</td>
      <td>[more text]</td>
      <td>[more text]</td>
    </tr>
    <tr>
      <td>[cell text]</td>
      <td>[cell text]</td>
      <td>[cell text]</td>
    </tr>
    <tr>
      <td>[cell text]</td>
      <td>[cell text]</td>
      <td>[cell text]</td>
    </tr>
    <tr class="expandable">
      <td>[more text]</td>
      <td>[more text]</td>
      <td>[more text]</td>
    </tr>
    <tr class="expandable">
      <td>[more text]</td>
      <td>[more text]</td>
      <td>[more text]</td>
    </tr>
  </tbody>
</table>

<label for="expand-toggle" id="expand-btn">Toggle hidden rows</label>

CSS

/* Hide the toggle checkbox */
#expand-toggle {
  display: none;
}

/* Hide expandable content by default */
.expandable {
  visibility: collapse;
  background: #dddddd;
}

/* Style the button */
#expand-btn {
  display: inline-block;
  margin-top: 12px;
  padding: 5px 11px;
  background-color: #ffff77;
  border: 1px solid;
  border-radius: 3px;
}

/* Show hidden content when the checkbox is checked */
#expand-toggle:checked ~ * .expandable {
  visibility: visible;
}

/* Style the button when the checkbox is checked */
#expand-toggle:checked ~ #expand-btn {
  background-color: #cccccc;
}

Результат

Спецификации

Спецификация
HTML
# selector-checked
Selectors Level 4
# checked-pseudo

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
checked
1В macOS стилизация элементов <option> не оказывает эффекта.
12В macOS стилизация элементов <option> не оказывает эффекта.
1Начиная с Firefox 56 стилизовать элементы <option> нельзя.
В macOS стилизация элементов <option> не оказывает эффекта.
9В macOS стилизация элементов <option> не оказывает эффекта.
3.1Стилизация элементов <option> не оказывает эффекта.
18
4Начиная с Firefox 56 стилизовать элементы <option> нельзя.
10.1
2Стилизация элементов <option> не оказывает эффекта.
1.0
2
2Стилизация элементов <option> не оказывает эффекта.

См. также

  • Веб-формы — работа с пользовательскими данными
  • Стилизация веб-форм
  • Связанные элементы HTML: <input type="checkbox">, <input type="radio">, <select> и <option>
  • Заменяемые элементы

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:checked

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API