:valid
Псевдокласс :valid CSS псевдокласс представляет любое поле <input> или другое поле <form>, содержимое которого успешно проходит валидацию. Это позволяет легко настроить вид валидных полей, помогая пользователю убедиться, что введённые данные отформатированы правильно.
Попробуйте
Этот псевдокласс полезен для выделения корректных полей для пользователя.
Синтаксис
:valid {
/* ... */
}
Доступность
Зелёный цвет обычно используется для обозначения корректного ввода. Люди с определёнными типами дальтонизма не смогут определить состояние ввода, если оно не сопровождается дополнительным индикатором, не полагающимся на цвет для передачи смысла. Обычно используются описательный текст и/или значок.
Примеры
Отображение валидных и невалидных полей формы
В этом примере мы используем такие структуры, которые содержат дополнительные <span> для генерации контента; мы будем использовать их для предоставления индикаторов валидных/невалидных данных:
<div> <label for="fname">First name *: </label> <input id="fname" name="fname" type="text" required /> <span></span> </div>
Для предоставления этих индикаторов мы используем следующий CSS:
input + span {
position: relative;
}
input + span::before {
position: absolute;
right: -20px;
top: 5px;
}
input:invalid {
border: 2px solid red;
}
input:invalid + span::before {
content: "✖";
color: red;
}
input:valid + span::before {
content: "✓";
color: green;
}
Мы устанавливаем <span> в position: relative, чтобы иметь возможность позиционировать сгенерированный контент относительно них. Затем мы абсолютно позиционируем разный сгенерированный контент в зависимости от того, являются ли данные формы валидными или невалидными — зелёная галочка или красный крестик соответственно. Для добавления некоторой дополнительной наглядности к невалидным данным, мы также задали полям толстую красную границу при невалидности.
Примечание: Мы использовали ::before для добавления этих меток, так как уже использовали ::after для меток «обязательно».
Вы можете попробовать ниже:
Обратите внимание, как обязательные текстовые поля невалидны, когда пусты, но валидны, когда в них что-то введено. Поле для электронной почты, с другой стороны, валидно, когда пустое, так как оно необязательное, но невалидно, когда содержит что-то, что не является корректным адресом электронной почты.
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
:valid |
10 | 12 | 4 | 10 | 5 | 18 | 4 | 10.1 | 5 | 1.0 | 37 |
form |
40 | 79 | 13 | 27 | 9 | 40 | 14 | 27 | 9 | 4.0 | 40 |
См. также
- Другие псевдоклассы, связанные с валидацией:
:required,:optional,:invalid - Валидация данных форм
- Доступ к состоянию валидности из JavaScript
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/:valid