meter用于展示范围内的状态量,如硬盘使用率;progress表示任务完成进度,如文件上传。前者强调评估,后者关注过程。

meter
progress
meter
progress
在我看来,区分
meter
progress
progress
progress
value
max
value
而
meter
min
max
value
meter
low
high
optimum
所以,当你需要展示一个任务的完成情况时,毫不犹豫地选择
progress
meter
<meter>
我觉得,选择
<meter>
<meter>
在我看来,
<meter>
<meter>
progress
meter
这里我随手写个例子:
<label for="disk_usage">硬盘使用率:</label> <meter id="disk_usage" value="60" min="0" max="100" low="70" high="90" optimum="50">60%</meter> <p>你当前的账户信誉等级:</p> <meter value="0.75" min="0" max="1" low="0.4" high="0.8" optimum="0.9">良好</meter>
你看,
low
high
optimum
meter
high
<progress>
如果说
<meter>
<progress>
<progress>
我觉得,使用
<progress>
value
max
有个特别值得一提的地方是,
<progress>
value
value
这里也来个小例子:
<label for="upload_progress">文件上传进度:</label> <progress id="upload_progress" value="75" max="100">75%</progress> <p>正在处理您的请求...</p> <progress></progress> <!-- 不确定进度条 -->
这种“不确定”状态的
<progress>
<meter>
<progress>
说到可访问性,这俩标签的表现都挺不错的,这是它们作为语义化 HTML 元素的一个巨大优势。浏览器和辅助技术(比如屏幕阅读器)对它们有很好的内置支持。当你使用
<meter>
<progress>
div
aria-*
不过,虽然它们在语义上很强大,但样式定制上,说实话,它们各自都有点小脾气。
<progress>
::-webkit-progress-bar
::-webkit-progress-value
::-moz-progress-bar
/* 示例:定制 progress 样式 */
progress {
width: 200px;
height: 20px;
/* 默认背景色 */
background-color: #eee;
border: 1px solid #ccc;
border-radius: 5px;
}
/* WebKit/Blink 浏览器 */
progress::-webkit-progress-bar {
background-color: #eee;
border-radius: 5px;
}
progress::-webkit-progress-value {
background-color: #4CAF50; /* 绿色进度条 */
border-radius: 5px;
}
/* Firefox 浏览器 */
progress::-moz-progress-bar {
background-color: #4CAF50;
border-radius: 5px;
}而
<meter>
::-webkit-meter-bar
::-webkit-meter-optimum-value
::-webkit-meter-suboptimum-value
::-webkit-meter-even-less-good-value
meter
low
high
optimum
/* 示例:定制 meter 样式 (部分,仅供参考,实际情况复杂) */
meter {
width: 200px;
height: 20px;
/* 默认背景色 */
background-color: #eee;
border: 1px solid #ccc;
border-radius: 5px;
}
/* WebKit/Blink 浏览器 */
meter::-webkit-meter-bar {
background-color: #eee;
border-radius: 5px;
}
/* 最佳值区域 */
meter::-webkit-meter-optimum-value {
background-color: #4CAF50; /* 绿色 */
border-radius: 5px;
}
/* 次佳值区域 (例如高于low,低于optimum) */
meter::-webkit-meter-suboptimum-value {
background-color: #FFC107; /* 橙色 */
border-radius: 5px;
}
/* 最差值区域 (例如低于low) */
meter::-webkit-meter-even-less-good-value {
background-color: #F44336; /* 红色 */
border-radius: 5px;
}
/* Firefox 浏览器对 meter 的样式支持相对有限,通常需要更多 hack 或回退方案 */说实话,由于这些跨浏览器样式定制的复杂性,很多开发者在实际项目中,如果对视觉效果有非常高的要求,并且需要统一所有浏览器的表现,可能会选择用
div
aria-*
<progress>
<meter>
以上就是meter和progress区别的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号