Я знаю, что существует официальный :checked
псевдокласс CSS3 , но есть ли :unchecked
псевдокласс и есть ли у них такая же поддержка браузером?
Ссылка Sitepoint не упоминает ни одного, однако эта спецификация whatwg (что бы это ни было) делает.
Я знаю , что тот же результат может быть достигнут , когда :checked
и :not()
псевдо-классы объединяются, но я все еще интересно:
input[type="checkbox"]:not(:checked) {
/* styles */
}
Редактировать:
W3c рекомендует ту же технику
Не отмеченный флажок можно установить с помощью псевдокласса отрицания:
:not(:checked)
источник
Я думаю, вы пытаетесь все усложнить. Простое решение - просто стилизовать ваш флажок по умолчанию с неотмеченными стилями, а затем добавить стили отмеченного состояния.
Я прошу прощения за то, что поднял старую ветку, но чувствовал, что мог бы использовать лучший ответ.
РЕДАКТИРОВАТЬ (3/3/2016):
В спецификациях W3C это
:not(:checked)
указано в качестве примера для выбора состояния unchecked. Однако это явно непроверенное состояние, и эти стили будут применяться только к непроверенному состоянию. Это полезно для добавления стилей, которые необходимы только в непроверенном состоянии и должны быть удалены из отмеченного состояния, если они используются вinput[type="checkbox"]
селекторе. См. Пример ниже для пояснения.Без использования
:not(:checked)
в приведенном выше примере:checked
селектор должен был бы использовать aborder: none;
для достижения того же эффекта.Используйте
input[type="checkbox"]
для базовой стилизации, чтобы уменьшить дублирование.Используйте
input[type="checkbox"]:not(:checked)
для явных неотмеченных стилей, которые вы не хотите применять к отмеченному состоянию.источник
:not(:checked)
:first-child
,:last-child
или:nth-child
селектор в сочетании с:checked
.:not(:checked)
не будет охватывать указанную вами ситуацию, если я не понимаю ваш комментарий.Псевдокласса: unchecked нет, однако, если вы используете псевдокласс: checked и родственный селектор, вы можете различать оба состояния. Я считаю, что все последние версии браузеров поддерживают псевдокласс: checked, дополнительную информацию можно найти на этом ресурсе: http://www.whatstyle.net/articles/18/pretty_form_controls_with_css
Вы получите лучшую поддержку браузера с помощью jquery ... вы можете использовать функцию щелчка, чтобы определить, когда происходит щелчок, и если он отмечен или нет, вы можете добавить класс или удалить класс по мере необходимости ...
источник
Я справился с этим путем переключения className метки в зависимости от условия. Таким образом, вам понадобится только одна метка, и у вас могут быть разные классы для разных состояний ... Надеюсь, это поможет!
источник