Spec-Zone.ru › CSS

`: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 будет применять стили к пустым и выходящим за пределы диапазона полям ввода).

Спецификации

Спецификация
HTML
# selector-in-range
Селекторы уровня 4
# in-range-pseudo

Совместимость с браузерами

Настольные устройства Мобильные устройства
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). Позже его изменили так, чтобы он соответствовал только доступным для ввода и редактирования полям.

См. также

  • :out-of-range
  • Проверка данных формы

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API