Кратко
СкопированоПсевдокласс, который используется для стилизации трёх элементов: чекбоксов, радиокнопок и прогресс-баров.
Пригодится в двух случаях. Во-первых, для стилизации элементов в их исходном состоянии — при открытии формы или начале загрузки. Во-вторых, для показа пользователю незавершённости процесса выбора или загрузки.
Для чекбоксов и радиокнопок состояние indeterminate не получится присвоить напрямую в HTML, его можно задать только через JavaScript.
Прогресс-бару браузер присваивает :indeterminate автоматически, если не определён атрибут value — процент загрузки.
Примеры
Скопировано<input type, если не все пункты вложенной группы были выделены. Показывает пользователю, что он пока взаимодействовал не со всеми опциями выбора, которые ему предложены.= "checkbox"> - Группа
<input typeс одинаковым атрибутом= "radio"> name, но у которой ни один элемент не установлен вchecked. Показывает пользователю, что он пропустил пункт и не выбрал свой вариант. <progress>. Показывает процесс загрузки, но не показывает его прогресс.
Как пишется
СкопированоПосле селектора, который выбирает элемент прогресс-бара, чекбокса или группу радиокнопок, ставим двоеточие и пишем ключевое слово indeterminate, прописываем стили.
input:indeterminate { opacity: 0.45;}
input:indeterminate {
opacity: 0.45;
}
Как понять
СкопированоБраузер присваивает чекбоксу или радиокнопке псевдокласс :indeterminate, когда они определены так через JavaScript. Мы можем использовать этот псевдокласс для стилизации нетронутого пользователем элемента формы, подчёркивая незавершённость выбора.
const inputs = document.getElementsByTagName('input');for (let i = 0; i < inputs.length; i++) { inputs[i].indeterminate = true;}
const inputs = document.getElementsByTagName('input');
for (let i = 0; i < inputs.length; i++) {
inputs[i].indeterminate = true;
}