:required
Селектор псевдо - класса в CSS позволяет авторам выбирать и стиль любого согласованного элемент с required
атрибутом. Формы могут легко указать, какие поля должны содержать действительные данные, прежде чем форма может быть отправлена, но позволяет пользователю избежать ожидания, вызванного тем, что сервер будет единственным валидатором ввода пользователя.
Допустим, у нас есть вход с атрибутом, type="name"
и мы делаем его обязательным с помощью required
логического атрибута 1 :
Теперь мы можем стилизовать этот ввод с помощью :required
селектора псевдокласса:
/* style all elements with a required attribute */ :required ( background: red; )
Мы также можем стилизовать обязательные поля формы, используя простые селекторы, а также объединяя в цепочку дополнительные селекторы псевдоклассов:
/* style all input elements with a required attribute */ input:required ( box-shadow: 4px 4px 20px rgba(200, 0, 0, 0.85); ) /** * style input elements that have a required * attribute and a focus state */ input:required:focus ( border: 1px solid red; outline: none; ) /** * style input elements that have a required * attribute and a hover state */ input:required:hover ( opacity: 1; )
Демо
См. Pen: required Styling Криса Койера (@chriscoyier) на CodePen.
Точки интереса
required
Атрибут трактуются как логическое значение означает , что он не требует значений. Простое required
включение элемента позволяет браузеру знать, что этот атрибут существует, и соответствующий ввод фактически является обязательным полем. Хотя, согласно спецификации W3C, обязательный атрибут также работает с пустым значением или значением с именем атрибута.
Обязательный атрибут также запрашивает у браузера использование собственных выноски, таких как всплывающее сообщение, изображенное из демонстрации.
Для тех входных данных, которые не стилизованы с использованием :required
, авторы могут также настроить необязательные элементы с помощью :optional
селектора псевдокласса вместе с :invalid
и, :valid
которые запускаются при выполнении требований к данным поля формы.
Валидация формы также может дополняться рядом required
с pattern
атрибутом данных помощи фильтра в зависимости от входного в type
атрибуте. Шаблоны можно записать как регулярное выражение или строку. В приведенном ниже примере мы используем регулярное выражение для соответствия синтаксису адреса электронной почты.
:required
Атрибут работает на радио - кнопок. Если вы поставите required на одну радиокнопку (или на все), эта конкретная группа радиокнопок будет обязательной. Для флажков делает каждый отдельный флажок обязательным (для отметки).
Поддержка браузера
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
10 | 4 | 10 | 12 | 10.1 |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 4.4.3-4.4.4 | 10,3 |
1 Логические атрибуты . Ряд атрибутов в HTML5 являются логическими атрибутами. Наличие логического атрибута в элементе представляет истинное значение, а отсутствие атрибута представляет ложное значение. Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое без учета регистра соответствует каноническому имени атрибута, без начальных или конечных пробелов.