::-webkit-meter-suboptimum-value
Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
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
css
::-webkit-meter-suboptimum-value {
/* ... */
}
Examples
This example will only work in browsers based on WebKit or Blink.
HTML
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
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, #ff7, #990 45%, #990 55%, #ff7);
height: 100%;
box-sizing: border-box;
}
JavaScript
js
// 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 is_safari =
navigator.userAgent.includes("AppleWebKit/") &&
!navigator.userAgent.includes("Chrome/");
if (is_safari) {
document.body.classList.add("safari");
}
Result
Specifications
Not part of any standard.
Browser compatibility
BCD tables only load in the browser
See also
The pseudo-elements used by WebKit/Blink to style other parts of a <meter>
element are as follows: