Spec-Zone.ru › CSS

`:indeterminate` CSS pseudo-class

Baseline Widely available

This feature is well established and works across many devices and browser versions. It's been available across browsers since January 2020.

The :indeterminate CSS pseudo-class represents any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, radio buttons which are members of a group in which all radio buttons are unchecked, and <progress> elements with no value attribute.

/* Selects any <input> whose state is indeterminate */
input:indeterminate {
  background: lime;
}

Elements targeted by this selector are:

  • <input type="checkbox"> elements with the indeterminate property set to true.
  • <input type="radio"> elements with the same name value and none of them checked.
  • <progress> elements with no value, placing them in an indeterminate state.

Syntax

:indeterminate {
  /* ... */
}

Examples

Checkbox & radio button

This example applies special styles to the labels associated with indeterminate form fields.

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;
}

Result

Progress bar

HTML

<progress></progress>

CSS

progress {
  margin: 4px;
}

progress:indeterminate {
  width: 80vw;
  height: 20px;
}

Result

Specifications

Specification
HTML
# selector-indeterminate
Selectors Level 4
# indeterminate-pseudo

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on 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

See also

  • Web forms — Working with user data
  • Styling web forms
  • The <input type="checkbox"> element's indeterminate property
  • <input> and the HTMLInputElement interface which implements it.
  • The :checked CSS selector lets you style checkboxes based on whether they're checked or not

© 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

Spec-Zone.ru

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