如何在 HTML5 仪表中创建刻度?
How to create scale in the HTML5 meter?
我正在尝试使用如下所示的刻度创建仪表条。但是我不知道如何让它从 1 开始到 5 结束。在这里,在下图中,它似乎从某个值开始到某个值 > 5 结束。
我怎样才能解决这个问题并让所有中间值保持相等的距离?
meter::-webkit-meter-bar {
height: 25px;
background: none;
background-color: whitesmoke;
box-shadow: 0 5px 5px -5px #333 inset;
margin-bottom: 10px;
}
.scale {
display: table;
width: 100%;
padding: 0px 0px 0px 0px;
border: 0px 0px 0px 0px;
text-align: center;
}
.scale li {
width: 10%;
display: table-cell;
white-space: nowrap;
}
meter::-webkit-meter-optimum-value {
background-image: -webkit-linear-gradient(/*90deg,
#8bcf69 20%,
#e6d450 20%,
#e6d450 40%,
#f28f68 40%,
#f28f68 60%,
#cf82bf 60%,
#cf82bf 80%,
#719fd1 80%,
#719fd1 100%*/
);
transition: width 1s;
}
<div class="meter-wrapper">
<meter min="1" max="5" value="{{prediction}}"></meter>
<ul class="scale">
<li class=""><span class="scale">1</span></li>
<li><span class="scale">1.8</span></li>
<li><span class="scale">2.6</span></li>
<li><span class="scale">3.4</span></li>
<li><span class="scale">4.2</span></li>
<li class=""><span class="scale">5</span></li>
</ul>
</div>
请试试这个。我已经用 flex 替换了 display table,以便更好地控制。
meter::-webkit-meter-bar {
height: 25px;
background: none;
background-color: whitesmoke;
box-shadow: 0 5px 5px -5px #333 inset;
margin-bottom: 10px;
}
.scale {
display: flex;
width: 100%;
padding: 0px;
justify-content: space-between;
list-style: none;
}
meter::-webkit-meter-optimum-value {
background-image: -webkit-linear-gradient(/*90deg,
#8bcf69 20%,
#e6d450 20%,
#e6d450 40%,
#f28f68 40%,
#f28f68 60%,
#cf82bf 60%,
#cf82bf 80%,
#719fd1 80%,
#719fd1 100%*/
);
transition: width 1s;
}
<div class="meter-wrapper">
<meter min="1" max="5" value="{{prediction}}"></meter>
<ul class="scale">
<li class=""><span class="scale">1</span></li>
<li><span class="scale">1.8</span></li>
<li><span class="scale">2.6</span></li>
<li><span class="scale">3.4</span></li>
<li><span class="scale">4.2</span></li>
<li class=""><span class="scale">5</span></li>
</ul>
</div>
我正在尝试使用如下所示的刻度创建仪表条。但是我不知道如何让它从 1 开始到 5 结束。在这里,在下图中,它似乎从某个值开始到某个值 > 5 结束。
我怎样才能解决这个问题并让所有中间值保持相等的距离?
meter::-webkit-meter-bar {
height: 25px;
background: none;
background-color: whitesmoke;
box-shadow: 0 5px 5px -5px #333 inset;
margin-bottom: 10px;
}
.scale {
display: table;
width: 100%;
padding: 0px 0px 0px 0px;
border: 0px 0px 0px 0px;
text-align: center;
}
.scale li {
width: 10%;
display: table-cell;
white-space: nowrap;
}
meter::-webkit-meter-optimum-value {
background-image: -webkit-linear-gradient(/*90deg,
#8bcf69 20%,
#e6d450 20%,
#e6d450 40%,
#f28f68 40%,
#f28f68 60%,
#cf82bf 60%,
#cf82bf 80%,
#719fd1 80%,
#719fd1 100%*/
);
transition: width 1s;
}
<div class="meter-wrapper">
<meter min="1" max="5" value="{{prediction}}"></meter>
<ul class="scale">
<li class=""><span class="scale">1</span></li>
<li><span class="scale">1.8</span></li>
<li><span class="scale">2.6</span></li>
<li><span class="scale">3.4</span></li>
<li><span class="scale">4.2</span></li>
<li class=""><span class="scale">5</span></li>
</ul>
</div>
请试试这个。我已经用 flex 替换了 display table,以便更好地控制。
meter::-webkit-meter-bar {
height: 25px;
background: none;
background-color: whitesmoke;
box-shadow: 0 5px 5px -5px #333 inset;
margin-bottom: 10px;
}
.scale {
display: flex;
width: 100%;
padding: 0px;
justify-content: space-between;
list-style: none;
}
meter::-webkit-meter-optimum-value {
background-image: -webkit-linear-gradient(/*90deg,
#8bcf69 20%,
#e6d450 20%,
#e6d450 40%,
#f28f68 40%,
#f28f68 60%,
#cf82bf 60%,
#cf82bf 80%,
#719fd1 80%,
#719fd1 100%*/
);
transition: width 1s;
}
<div class="meter-wrapper">
<meter min="1" max="5" value="{{prediction}}"></meter>
<ul class="scale">
<li class=""><span class="scale">1</span></li>
<li><span class="scale">1.8</span></li>
<li><span class="scale">2.6</span></li>
<li><span class="scale">3.4</span></li>
<li><span class="scale">4.2</span></li>
<li class=""><span class="scale">5</span></li>
</ul>
</div>