Chrome中HTML5 Meter的样式设计

4

我希望能够通过CSS样式来实现密码强度的显示,该功能已经在Firefox中正常运行,但在Chrome中却无法正常工作。

以下是相关的CSS代码,取自GitHub项目CSS文件

meter {
    /* Reset the default appearance */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;

    margin: 0 auto 1em;
    width: 100%;
    height: .5em;

    /* Applicable only to Firefox */
    background: none;
    background-color: rgba(0,0,0,0.1);
}

meter::-webkit-meter-bar {
    background: none;
    background-color: rgba(0,0,0,0.1);
}

meter[value="0"]::-webkit-meter-optimum-value,
meter[value="1"]::-webkit-meter-optimum-value { background: red; }
meter[value="2"]::-webkit-meter-optimum-value { background: yellow; }
meter[value="3"]::-webkit-meter-optimum-value { background: orange; }
meter[value="4"]::-webkit-meter-optimum-value { background: green; }

meter[value="1"]::-moz-meter-bar,
meter[value="1"]::-moz-meter-bar { background: red; }
meter[value="2"]::-moz-meter-bar { background: yellow; }
meter[value="3"]::-moz-meter-bar { background: orange; }
meter[value="4"]::-moz-meter-bar { background: green; }
最后一点很重要,它可以根据仪表的值进行样式设置。
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3
这是一种有意的行为改变。 https://www.chromestatus.com/feature/5668635896971264 因此,您需要删除-webkit-appearance:none,或者需要自己构建一个表计值框。
<style>
meter {
  -webkit-appearance: none;
  background: gray;
}
meter > div {
  height: 100%;
}
meter[value="1"] > div {
  width: 25%;
  background: red;
}
meter[value="2"] > div {
  width: 50%;
  background: yellow;
}
meter[value="3"] > div {
  width: 75%;
  background: orange;
}
meter[value="4"] > div {
  width: 100%;
  background: green;
}
</style>
<meter value=3><div></div></meter>

1
这在Windows和Mac的Chrome上可以运行,但在Linux上无法运行。https://bugs.chromium.org/p/chromium/issues/detail?id=632171 - Mike Slinn
你试过我的答案了吗? - int32_t
标记为已修复,版本号为52(2016年7月29日),有人能够确认吗?似乎在Linux上仍然无法正常工作。 - mate64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,