meter标签本质是语义化标尺而非仪表盘,用于表示已知范围内的标量值,需设置min、max、value属性,浏览器默认渲染为横向进度条,不支持环形/指针式可视化,自定义外观受限,复杂仪表盘应选用SVG/Canvas或专用库。
标签在 HTML5 中定义的是「已知范围内的标量测量值」,比如磁盘使用率、投票得票率、电量百分比。它不渲染成圆形仪表盘(dial/gauge),而是默认显示为横向进度条样式——这点常被误读。浏览器原生不支持环形、弧形或指针式可视化,强行用 做“仪表盘”会丢失语义且难以控制外观。
必须提供 min、max 和 value 三个属性,否则行为未定义(部分浏览器可能不渲染或显示 NaN):
73%
常见错误包括:
min 或 max → 浏览器按默认 min=0、max=1 解析,导致 value=73 超出范围而显示为空或异常色块value(如 value="73%")→ 解析失败,回退为 0value 属性 → 视觉不变,辅助技术也无法感知新值Chrome/Edge 支持伪元素 ::-webkit-meter-bar、::-webkit-meter-o 等;Firefox 仅支持极简样式(如 background),Safari 兼容性更弱。实际可操作点:
ptimum-value
height: 20px; border-radius: 10px;
meter::-webkit-meter-bar { background: #e0e0e0; }meter[value="0"]::-webkit-meter-optimum-value { background: #9e9e9e; }meter[value="100"]::-webkit-meter-optimum-value { background: #4caf50; }
如果目标是圆形仪表、动态指针、多段色带或响应式缩放, 不是合适选择。推荐组合:
存原始数据(隐藏或极小尺寸),另起 或 SVG 渲染图形,通过 JS 同步 value
doughnut 图配 cutout: '80%' 模拟环形表,或使用 svg-gauge 这类专做仪表的微型库aria-valuenow、aria-valuemin、aria-valuemax,并监听键盘交互(如左右键微调)别为了“用了 HTML5 新标签”硬套 ,它的价值在结构清晰、屏幕阅读器友好、SEO 可读——而不是长得像仪表盘。