【问题标题】:A good usage of HTML5's "progress" or "meter"?HTML5 的“进度”或“仪表”的好用法?
【发布时间】:2025-12-28 06:30:09
【问题描述】:

假设您有一个 10 页的调查(每页一个问题)。在每一页的顶部,您都添加了“问题 2,共 10 题”的文字。这种东西适合“progress”或“meter”吗?

从语义上讲,“进步”最初似乎是最合适的。但是,我阅读和查看示例越多,我认为“仪表”可能更合适。

<meter max="10" value="1">Question 1 of 10</meter>
<progress max="10" value="1">Question 1 of 10</progress>

【问题讨论】:

    标签: html semantics


    【解决方案1】:

    由于该值是确定的,因此“米”似乎会更好。 试试这个参考,看看它是否有帮助: http://peter.sh/examples/?/html/meter-progress.html

    【讨论】:

      【解决方案2】:

      根据latest HTML5 working draftprogress 标签最适合用来显示手头特定任务的进度。 meter 最适合用于与任务无关的指标,例如磁盘空间或内存使用情况。

      progress 元素表示 任务的完成进度。

      meter 元素表示一个标量 在已知范围内进行测量,或 分数值;例如磁盘 用法,查询的相关性 结果,或投票的一部分 人口选择了一个 特定的候选人。

      编辑 - 由于渲染和样式似乎是一个问题,使用其他标签可能会更幸运。例如,一个性感的进度导航器可以编码为:

      <nav class="progress">
          <ol>
              <li class="active">Your Info</li>
              <li>General</li>
              <li>Detailed</li>
              <li>Last Step</li>
          </ol>
      </nav>
      

      并使用 like this 的样式。

      【讨论】:

      • 换句话说,使用progress
      • 目前在 Chrome 中实现 &lt;progress&gt; 的方式绝对不适合在向导中指示进度。它是动画的,以确保用户不会感到无聊——这只对非交互式任务有意义。
      • 也许我们使用的是不同版本的 Chrome?在 Chromium 12 中,我看不到动画。
      • @Wladimir:从语义上讲,progress 是应该使用的(这是我可以从规范中得出的唯一结论)。至少它比meter 好。也许 Webkit 开发人员需要了解这个感知到的问题?
      • 好点。在这种情况下,progress 的动画看起来有点奇怪。目前,这些元素中的任何一个的样式都相当参差不齐。
      【解决方案3】:

      从视觉上来说,我认为米更合适。

      【讨论】:

      • “视觉上说”?需要解释一下吗?
      • 视觉上应该使用CSS。
      • 让我想起了《捉鬼敢死队》那句经典台词,“听着,你闻到了什么?”
      • 相反,在我看来,它看起来更好。使用其中一种真的很重要吗?
      • @SBSTP:当然可以。 Semantically.
      【解决方案4】:

      从语义上讲,progress 似乎确实适合在这里使用。我也向HTML5 Doctor 提出了这个问题,他们似乎也同意这一点。我的问题是 progress is very poorly supported 目前(2011 年 7 月 5 日)。这使得它很难在今天的实际用例中使用。

      作为权宜之计,我计划使用在标准 div 元素中使用新元素名称作为类名称的约定(A.K.A. - 语义类名称)。更多详情,关于这个想法:http://jontangerine.com/log/2008/03/preparing-for-html5-with-semantic-class-names

      这就是我今天的代码的样子。再过一两年,当这个元素有更好的支持时,我会回去用真正的progress标签替换它。

      <div class="progress" role="progressbar" aria-valuenow="1" aria-valuemin="1" aria-valuemax="10">
          Question 1 of 10
      </div>
      

      【讨论】:

        【解决方案5】:

        IE 不支持仪表。连 IE10 都没有。

        【讨论】:

          【解决方案6】:

          标签定义已知范围内的标量测量值或小数值。这也称为量规。

          在 Google Chrome 上,生成的仪表如下所示:

          进度元素用于显示任务的完成进度。

          在 Windows 7 上,生成的进度如下所示:

          注意:标签不应用于指示进度(如在进度条中)。对于进度条,请使用标签。

          【讨论】:

          • 我认为这些图像已经过时,或者至少在我的 Windows 上的 Chrome 87 上看起来与这些照片完全不同,除了一个是绿色的,另一个是蓝色的之外,它们基本相同