管理杂谈OA答疑ERP答疑教程搜索

HTML <meter> 元素完全指南:属性、视觉语义、样式定制与无障碍实践


在网页中展示“某个数值在整体中的位置”是一种常见需求——比如你的硬盘还剩多少空间、手机电量是否告急、考试成绩属于哪个等级。HTML5 引入的 <meter> 元素正是为此而生。它不仅能显示数值,还能通过颜色变化自动传递“好、中、差”的状态信息。

本文带你系统掌握 <meter> 的用法,避开常见误区,并写出优雅、可访问的代码。

一、<meter> 是什么?什么时候用它?


<meter> 代表一个已知范围内的标量测量值。它的关键特征是:

典型使用场景

场景类型

示例

磁盘或内存使用量

-

电池剩余电量

-

考试得分

85/100

温度、湿度、速度等传感器读数

-

投票支持率

72% 赞成

产品评分

 4.2/5 星

不要用于

二、属性全面解析

属性

含义

是否必需

默认值

约束

value

当前测量值

0

必须介于 min 和 max 之间

min

范围最小值

0

小于 max

max

范围最大值

 1

大于 min

low

“低”范围的上限

min

通常 ≥ min 且 ≤ high

high

“高”范围的下限

max

通常 ≥ low 且 ≤ max

optimum

最佳期望值

介于 min 与 max 之间

决定颜色逻辑


三、视觉逻辑:颜色是如何自动生成的?


3.1 三范围划分

meter 元素通过 low 和 high 将整个区间分成三段:[min, low]、[low, high]、[high, max]。

[低范围] ——— [正常范围] ——— [高范围]min         low  high     max        

3.2 确定「目标区域」

Optimum 的设定用于界定目标区域,颜色显示则依据当前值(value)与目标区域的对应关系进行判定。


3.3 判断颜色

默认状态下,<meter>元素只使用绿、黄、红三种颜色:

理解相邻范围」相对范围

min           low  high       max  [低范围] -—--— [正常范围] ——--— [高范围]         |        |          |         |     optimum       |         |        |          |       相邻范围  目标区域    相邻范围         |        |          |        黄色      绿色        黄色--------------------------------------------min                  low  high     max  [低范围] -—optimum —— [正常范围] ——— [高范围]             |           |           |           目标区域     相邻范围     相对范围             |           |           |            绿色         黄色         红色--------------------------------------------min          low  high             max  [低范围] -—-— [正常范围] —-optimum—— [高范围]         |       |          |                     相对范围  相邻范围    目标区域            |       |          |        红色     黄色        绿色

通俗总结

一句话快速记忆:optimum 在哪,哪就绿;相邻黄;相对红。

示例:

<!-- optimum 在低范围(10),高范围(28-40)显示红色 -->meter min="0" max="40" low="18" high="28" optimum="10" value="35"></meter
<!-- optimum 在高范围(35),低范围(0-18)显示红色 -->meter min="0" max="40" low="18" high="28" optimum="35" value="10"></meter
<!-- optimum 在正常范围(24),无红色 -->meter min="0" max="40" low="18" high="28" optimum="24" value="4"></meter
<!-- optimum 在正常范围(24),无红色 值在目标区域,显示绿色-->meter min="0" max="40" low="18" high="28" optimum="24" value="25"></meter

四、代码示例


基础用法

p磁盘使用率:meter value="0.6"60%</meter></pp投票支持率:meter min="0" max="100" value="85"85%</meter></p

带范围与状态的完整示例

p电池电量:meter min="0" max="100" low="20" high="80" optimum="100" value="65"65%</meter></pp温度(最佳25°C):meter min="0" max="100" low="30" high="70" optimum="25" value="60"60°C</meter></p

三种状态对比

p低状态(值低于low):meter min="0" max="100" low="30" high="70" value="25"25%</meter></pp正常状态:meter min="0" max="100" low="30" high="70" value="50"50%</meter></pp高状态(值高于high):meter min="0" max="100" low="30" high="70" value="85"85%</meter></p

考试成绩展示

p数学成绩:meter min="0" max="150" low="90" high="120" optimum="135" value="110"110/150</meter (满分150,优秀≥135)</p

五、自定义样式:摆脱浏览器默认外观


<meter> 的样式定制需要使用浏览器专属的伪元素。以下是兼容 Chrome / Edge / Safari(WebKit)和 Firefox 的方案。

/* 基础尺寸 */meter {  width240px;  height24px;  border-radius;}
/* WebKit/Blink 内核(Chrome, Edge, Safari) */  meter::-webkit-meter-bar {    background#e9ecef;    border-radius;    border: none;  }  meter::-webkit-meter-optimum-value {    backgroundlinear-gradient(135deg#2ecc71#27ae60);    border-radius;  }  meter::-webkit-meter-suboptimum-value {    backgroundlinear-gradient(135deg#f1c40f#f39c12);    border-radius;  }  meter::-webkit-meter-even-less-good-value {    backgroundlinear-gradient(135deg#e74c3c#c0392b);    border-radius;  }
  /* Firefox */  meter::-moz-meter-bar {    border-radius;  }  meter::-moz-meter-optimum-value {    background#2ecc71;  }  meter::-moz-meter-suboptimum-value {    background#f1c40f;  }  meter::-moz-meter-sub-suboptimum-value {    background#e74c3c;  }
p自定义渐变样式:meter value="0.68"68%</meter></p

六、与 <progress> 的本质区别


维度

<meter>

<progress>

核心语义

“测得多少”

“完成了多少”

范围

必须已知(min~max)

可选,通常为 0~max 或不确定

动态性

通常静态或随测量更新

常用于动态任务进度

状态色

自动绿/黄/红(基于 low/high/optimum)

无自动状态色(通常单一颜色)

关键属性

value, min, max, low, high, optimum

value, max

典型场景

电量、温度、磁盘、分数

上传、下载、安装、问卷完成度

一句话总结:需要表达“好坏程度”用 <meter>,需要表达“做了多少”用 <progress>。

七、无障碍与最佳实践


7.1 始终提供文本后备

meter value="0.6"60%</meter

不支持 <meter> 的浏览器(如 IE)会显示“60%”。

7.2 补充 ARIA 标签增强可访问性

meter value="45" min="0" max="100" aria-label="当前电池电量百分比"45%</meter

或者用 aria-labelledby 引用页面上的文本。

7.3 避免语义误用
7.4 合理设置 low 和 high
7.5 使用 CSS 但不破坏颜色含义


八、浏览器兼容性


建议访问 Can I Use 网站,以及时了解 meter 元素在各类浏览器中的最新兼容性支持情况。下图数据截止 2026.04.08。

总结


<meter> 是 HTML5 中一个轻量却精准的语义化工具。它通过 value、min、max、low、high、optimum 六个属性,就能清晰传达“测量值是多少”以及“这个值好不好”。浏览器自动赋予绿/黄/红的视觉提示,用户无需额外说明即可感知状态。与 <progress> 各司其职,不可混用。

掌握 <meter> 的关键点:

当你需要在网页中优雅地展示“数值在区间内的位置和好坏程度”时,<meter> 就是那个最合适的原生 HTML 元素——简单、标准、友好。

阅读原文:原文链接


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn