Firefox Tomorrow

css pseudo element

`::-webkit-meter-suboptimum-value` CSS pseudo-element

View on MDN ↗

The ::-webkit-meter-suboptimum-value pseudo-element styles the <meter> element when the value attribute falls outside of the low-high range and is not equivalent to the optimum value.

Yellow is the default color.

Syntax

::-webkit-meter-suboptimum-value {
  /* ... */
}

Examples

This example will only work in browsers based on WebKit or Blink.

HTML

Normal:
<meter min="0" max="10" low="3" high="7" optimum="6" value="2">
  Score 2/10
</meter>
<br />
Styled:
<meter id="styled" min="0" max="10" low="3" high="7" optimum="6" value="2">
  Score 2/10
</meter>

CSS

body {
  font-family: monospace;
}

.safari meter {
  /* Reset the default appearance for Safari only */
  /* .safari class is added via JavaScript */
  -webkit-appearance: none;
}

#styled::-webkit-meter-suboptimum-value {
  background: linear-gradient(
    to bottom,
    #ffff77,
    #999900 45%,
    #999900 55%,
    #ffff77
  );
  height: 100%;
  box-sizing: border-box;
}

JavaScript

// Safari requires <meter> elements to have an `appearance` of `none` for custom styling
// using `::-webkit-meter-*` selectors, but `appearance: none` breaks rendering on Chrome.
// Therefore, we must check if the browser is Safari-based.

const isSafari =
  navigator.userAgent.includes("AppleWebKit/") &&
  !navigator.userAgent.includes("Chrome/");

if (isSafari) {
  document.body.classList.add("safari");
}

Result

Interactive exampleOpen the canonical MDN source to run this embedded demo.

Specifications

Not part of any standard.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also

The pseudo-elements used by WebKit/Blink to style other parts of a <meter> element are as follows: