<meter> 标签的主要作用是显示已知范围内的度量值,用于展示静态的、有上下限的数值状态,如硬盘使用率或考试成绩占比,而非任务进度(那是 <progress> 的用途);它通过 value、min 和 max 属性定义当前值和范围,并可结合 low、high 和 optimum 属性提供语义上下文,帮助浏览器和辅助技术判断数值所处区间(低、高或理想状态),从而在视觉上以不同颜色呈现;例如 <meter value="75" min="0" max="100" low="40" high="80" optimum="90">75%</meter> 表示当前值为75,在0-100范围内,低于40为不佳,高于80为良好,90为最佳,浏览器会据此渲染颜色;与 <progress> 的区别在于语义:<meter> 表示静态度量(如油表剩余油量),而 <progress> 表示动态任务进度(如文件下载完成百分比),正确使用有助于可访问性;css 自定义样式较复杂,因浏览器渲染差异大且涉及 shadow dom,可通过伪元素如 ::-webkit-meter-bar 和 -moz-meter-bar 等设置背景与填充色,但跨浏览器一致性难保证,有时开发者会选择用 div 模拟以获得更精确控制;low、high 和 optimum 属性赋予数值语义意义,如硬盘空间示例中 value="850" 超过 high="900" 可能触发警告色,考试分数中 value="75" 处于中等区间,温度场景中 value="15" 低于 low="18" 表示过冷,这些属性使屏幕阅读器能更好传达状态,提升可访问性,因此合理设置它们能让 <meter> 更具语义价值。

表单中的
meter
<progress>
value
min
max
使用
<meter>
value
min
max
low
high
optimum
举个例子,如果你想显示一个用户在某个技能上的熟练度(满分100分,他得了75分),你可以这样写:
<label for="skillLevel">您的技能熟练度:</label> <meter id="skillLevel" value="75" min="0" max="100" low="40" high="80" optimum="90">75%</meter>
这里,
value="75"
min="0"
max="100"
low="40"
high="80"
optimum="90"
value
low
high
optimum
<meter>
<progress>
这是个老生常谈的问题,但确实很重要,因为我发现很多人刚开始会把它们搞混。简单来说,
<meter>
而
<progress>
<progress>
什么时候用哪个?
使用 <meter>
使用 <progress>
我个人觉得,理解它们的语义差异比记住功能更重要。如果你用
<meter>
<meter>
自定义
<meter>
<progress>
div
span
不过,也不是完全没办法。主流浏览器提供了一些伪元素(Pseudo-elements)来让你进行一定程度的样式定制。
WebKit/Blink (Chrome, Safari, Edge基于Chromium):
::-webkit-meter-bar
::-webkit-meter-optimum-value
value
optimum
::-webkit-meter-suboptimum-value
value
suboptimum
::-webkit-meter-unsatisfied-value
value
unsatisfied
low
Mozilla (Firefox):
-moz-meter-bar
::-webkit-meter-bar
-moz-meter-optimum
-moz-meter-sub-optimum
-moz-meter-unsatisfied
你会发现,这些伪元素的名称都不太一样,而且并不是所有属性都能被覆盖。通常,你可以修改背景色、边框、高度等。
一个简单的例子:
meter {
/* 整个 meter 容器的样式 */
width: 200px;
height: 20px;
background-color: #f0f0f0; /* 默认背景色 */
border: 1px solid #ccc;
border-radius: 5px;
overflow: hidden; /* 确保内部条形不会溢出 */
}
/* WebKit/Blink 浏览器 */
meter::-webkit-meter-bar {
background-color: transparent; /* 清除默认背景,让外层 meter 的背景生效 */
}
meter::-webkit-meter-optimum-value {
background-color: #4CAF50; /* 绿色,表示最佳 */
}
meter::-webkit-meter-suboptimum-value {
background-color: #FFC107; /* 橙色,表示次优 */
}
meter::-webkit-meter-unsatisfied-value {
background-color: #F44336; /* 红色,表示不满意 */
}
/* Firefox 浏览器 */
meter:-moz-meter-bar {
background-color: transparent;
}
meter:-moz-meter-optimum {
background-color: #4CAF50;
}
meter:-moz-meter-sub-optimum {
background-color: #FFC107;
}
meter:-moz-meter-unsatisfied {
background-color: #F44336;
}说实话,即便有了这些伪元素,要实现一个完全自定义且跨浏览器一致的
<meter>
div
<meter>
div
<meter>
<meter>
low
high
optimum
这几个属性是
<meter>
low
value
low
high
value
high
optimum
min
max
value
optimum
如何理解和使用?
这三个属性是用来给度量值提供上下文和语义的。它们并不强制浏览器以某种特定方式渲染(比如,低于
low
我们来举几个实际的例子:
硬盘空间使用率:
min="0"
max="1000"
low="100"
high="900"
optimum="1000"
<meter value="850" min="0" max="1000" low="100" high="900" optimum="1000">850GB</meter>
这里,850GB 已经超过了
high
学生考试分数:
min="0"
max="100"
low="60"
high="90"
optimum="100"
<meter value="75" min="0" max="100" low="60" high="90" optimum="100">75分</meter>
75分在这里属于中等偏上,可能显示为普通颜色。
室内温度:
min="0"
max="40"
low="18"
high="26"
optimum="22"
<meter value="15" min="0" max="40" low="18" high="26" optimum="22">15°C</meter>
15°C低于
low
这些属性的强大之处在于,它们将数值的语义嵌入到了HTML结构中。即使没有复杂的CSS样式,辅助技术也能通过这些属性,向用户传达当前值是“好”、“差”还是“最佳”。这不仅仅是视觉上的美观,更是对可访问性的深思熟虑。所以,在使用
<meter>
low
high
optimum
以上就是表单中的meter标签有什么用?如何显示度量值?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号