Chrome中的HTML5 Meter样式

时间:2016-07-25 17:06:26

标签: css html5 google-chrome

我想通过实现密码强度计的样式。它适用于Firefox,但不适用于Chrome。

以下是相关的CSS,取自GitHub project CSS file

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 个答案:

答案 0 :(得分: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>