`:in-range` псевдокласс CSS
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
:in-range CSS псевдокласс представляет собой элемент <input>, текущее значение которого находится в пределах диапазона, заданного атрибутами min и max.
Попробуйте
label {
display: block;
margin-top: 1em;
}
input:in-range {
background-color: palegreen;
}
<form>
<label for="amount">How many tickets? (You can buy 2-6 tickets)</label>
<input id="amount" name="amount" type="number" min="2" max="6" value="4" />
<label for="dep">Departure Date: (Whole year 2022 is acceptable)</label>
<input
id="dep"
name="dep"
type="date"
min="2022-01-01"
max="2022-12-31"
value="2025-05-05" />
<label for="ret">Return Date: (Whole year 2022 is acceptable)</label>
<input id="ret" name="ret" type="date" min="2022-01-01" max="2022-12-31" />
</form>
Этот псевдокласс полезен, чтобы визуально показать пользователю, что текущее значение поля находится в допустимых пределах.
Примечание: Этот псевдокласс применяется только к элементам, для которых установлен (и может быть задан) диапазон допустимых значений. Если такое ограничение отсутствует, элемент не может быть ни «в диапазоне», ни «вне диапазона».
Синтаксис
:in-range {
/* ... */
}
Примеры
HTML
<form action="" id="form1">
<ul>
Values between 1 and 10 are valid.
<li>
<input
id="value1"
name="value1"
type="number"
placeholder="1 to 10"
min="1"
max="10"
value="12"
required />
<label for="value1">Your value is </label>
</li>
</ul>
</form>
CSS
li {
list-style: none;
margin-bottom: 1em;
}
input {
border: 1px solid black;
}
input:in-range {
background-color: rgb(0 255 0 / 25%);
}
input:out-of-range {
background-color: rgb(255 0 0 / 25%);
border: 2px solid red;
}
input:in-range + label::after {
content: "okay.";
}
input:out-of-range + label::after {
content: "out of range!";
}
Результат
Примечание: Пустой <input> не считается выходящим за пределы диапазона и не будет выбран с помощью селектора псевдокласса :out-of-range. Псевдокласс :blank предназначен для выбора пустых полей ввода, однако на момент написания этой статьи он является экспериментальным и поддерживается недостаточно широко. Также можно использовать атрибут required и псевдокласс :invalid, чтобы реализовать более общую логику и стилизацию обязательных полей ввода (:invalid будет применять стили к пустым и выходящим за пределы диапазона полям ввода).
Спецификации
Совместимость с браузерами
| Настольные устройства | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
in-range |
10До Chrome 52:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В Chrome 52 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
13 |
29До Firefox 50:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 1264157). В Firefox 50 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
11До Opera 39:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В Opera 39 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
5.1В Safari:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 156530). Позже его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
18До Chrome Android 52:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В Chrome Android 52 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
16 |
11До Opera 39:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В Opera 39 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
5В Safari на iOS:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 156530). Позже его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
1.0До версии 6.0:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В версии 6.0 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
2.2До версии 52:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 41248615). В версии 52 его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
5В WebView на iOS:in-range соответствовал отключённым полям ввода и полям только для чтения (см. ошибку 156530). Позже его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям. |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:in-range