Псевдокласс CSS `:indeterminate`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
:indeterminate CSS псевдокласс обозначает любой элемент формы, состояние которого неопределённо: например, флажки, для которых с помощью JavaScript задано состояние indeterminate, переключатели, входящие в группу, в которой ни один переключатель не выбран, и элементы <progress> без атрибута value.
/* Selects any <input> whose state is indeterminate */
input:indeterminate {
background: lime;
}
К этому селектору относятся следующие элементы:
-
элементы
<input type="checkbox">, для которых свойствуindeterminateзадано значениеtrue. -
элементы
<input type="radio">с одинаковым значениемname, если ни один из них неchecked. -
элементы
<progress>без атрибутаvalue, что помещает их в неопределённое состояние.
Синтаксис
:indeterminate {
/* ... */
}
Примеры
Флажок и переключатель
В этом примере к меткам, связанным с полями формы в неопределённом состоянии, применяются специальные стили.
HTML
<fieldset>
<legend>Checkbox</legend>
<div>
<input type="checkbox" id="checkbox" />
<label for="checkbox">This checkbox label starts out lime.</label>
</div>
</fieldset>
<fieldset>
<legend>Radio</legend>
<div>
<input type="radio" id="radio1" name="radioButton" value="val1" />
<label for="radio1">First radio label starts out lime.</label>
</div>
<div>
<input type="radio" id="radio2" name="radioButton" value="val2" />
<label for="radio2">Second radio label also starts out lime.</label>
</div>
</fieldset>
CSS
input:indeterminate + label {
background: lime;
}
fieldset {
padding: 1em 0.75em;
}
fieldset:first-of-type {
margin-bottom: 1.5rem;
}
fieldset:not(:first-of-type) > div:not(:last-child) {
margin-bottom: 0.5rem;
}
JavaScript
const inputs = document.getElementsByTagName("input");
for (const input of inputs) {
input.indeterminate = true;
}
Результат
Индикатор выполнения
HTML
<progress></progress>
CSS
progress {
margin: 4px;
}
progress:indeterminate {
width: 80vw;
height: 20px;
}
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
indeterminate |
1 |
12 |
2 |
9 |
3 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
checkbox |
1 |
12 |
3.6 |
10.6 |
3 |
18 |
4 |
11 |
1 |
1.0 |
4.4 |
1 |
progress |
6 |
12 |
6 |
15 |
5.1 |
18 |
6 |
14 |
5 |
1.0 |
37 |
5 |
radio |
39 |
79 |
51 |
26 |
10 |
39 |
51 |
26 |
10 |
4.0 |
39 |
10 |
См. также
- Веб-формы — работа с пользовательскими данными
- Стилизация веб-форм
- Свойство
indeterminateэлемента<input type="checkbox"> -
<input>и реализующий его интерфейсHTMLInputElement. - Селектор CSS
:checkedпозволяет задавать стили флажкам в зависимости от того, выбраны они или нет
© 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/:indeterminate