:valid
Селектор позволяет выбрать элементы , которые содержат действительное содержание, как определено его
type
атрибут. :valid
определен в спецификации CSS Selectors Level 3 как «псевдоселектор достоверности», то есть он используется для стилизации интерактивных элементов на основе оценки пользовательского ввода.
Этот селектор имеет одно конкретное назначение: предоставление пользователю обратной связи, когда он взаимодействует с формой на странице. В приведенном ниже примере используется CSS, чтобы сделать поля «Электронная почта» красными или зелеными, в зависимости от того, соответствует ли содержимое действительному шаблону адреса электронной почты:
См. Pen: valid &: invalid inputs Криса Койера (@chriscoyier) на CodePen
Обратите внимание на то, что первый («Электронная почта») имеет зеленый цвет, даже если в поле нет содержимого. Это связано с тем, что ввод не является обязательным, поэтому оставление его пустым приведет к отправке действительной формы. Чтобы исправить это поведение, у второго
есть атрибут «required», что означает, что пустое поле приведет к недопустимой отправке формы.
Точки интереса
:valid
могут быть «связаны» с другими псевдоселекторами: например,:focus
для проверки только того момента, когда пользователь вводит текст,:before
или:after
для создания значков или текста, чтобы обеспечить дополнительную обратную связь с пользователем, или для селекторов атрибутов, например,input(value="")
для проверки только полей ввода, содержащих контент.
Поддержка браузера
Хром | Сафари | Fire Fox | Опера | IE | Android | iOS |
---|---|---|---|---|---|---|
10.0+ | 5.0+ | 4.0+ | 10.0+ | 10+ | 5+ | 2+ |
:valid
был представлен в модуле CSS Selectors Module 3, что означает, что старые версии браузеров его не поддерживают. Однако поддержка современных браузеров становится лучше. Если вам требуется поддержка старых версий браузеров, используйте полифил или используйте эти селекторы некритично, например, с прогрессивным улучшением, что рекомендуется.