Кратко
СкопированоЭти псевдоклассы используются для стилизации полей ввода, поддерживающих атрибуты min
и max
:
:in
для полей, в которых введённое значение попадает в диапазон от- range min
доmax
;:out
для полей, в которых введённое значение не попадает в диапазон от- of - range min
доmax
.
Пример
Скопировано<input class="with-range" type="number" min="10" max="20" step="1">
<input class="with-range" type="number" min="10" max="20" step="1">
.with-range { border: 1px solid black;}.with-range:in-range { border-color: green; background-color: rgb(0 255 0 / 20%);}.with-range:out-of-range { border-color: red; background-color: rgb(255 0 0 / 20%);}
.with-range { border: 1px solid black; } .with-range:in-range { border-color: green; background-color: rgb(0 255 0 / 20%); } .with-range:out-of-range { border-color: red; background-color: rgb(255 0 0 / 20%); }
Как понять
СкопированоПоля ввода с типами date
, month
, week
, time
, datetime
, number
и range
могут иметь атрибуты min
и max
. Эти атрибуты задают диапазон допустимых значений, которые пользователь может вводить в поле. В зависимости от того, попадает ли введённое значение в диапазон, будут применяться стили для псевдоклассов :in
и :out
.
Как пишется
Скопированоinput:in-range + span { color: rgb(0 255 0 / 20%);}input:out-of-range + span { color: rgb(255 0 0 / 20%);}
input:in-range + span { color: rgb(0 255 0 / 20%); } input:out-of-range + span { color: rgb(255 0 0 / 20%); }
Подсказки
Скопировано💡 Если в поле не введено никакого значения, то срабатывает псевдокласс :in
.
💡 Если атрибуты min
и max
не заданы, то при пустом поле сработает :in
, а при введённом значении ни один из псевдоклассов не сработает.
💡 Если нужно, чтобы при пустом поле не срабатывал :in
, можно расширить селектор псевдоклассом :placeholder
:
На практике
Скопированосоветует Скопировано
🛠 Псевдоклассы :in
и :out
можно использовать в более сложных селекторах, чтобы, например, показать ошибку ввода: