不同颜色的进度条

问题描述 投票:0回答:1

你如何在CSS中制作进度条,根据数值等设置颜色,从0%到20%的红色,20%到40%的蓝色......。另外,我希望进度条的颜色能一直显示,而不是只在达到数值时才显示(所以进度条的一部分是红色的,一部分是蓝色的,其他颜色从一开始就是红色的,随着数值的下降,这些颜色也会消失)。

javascript html css progress-bar
1个回答
1
投票

如果你想根据当前的进度来实现一个渐变的进度条,那么可以尝试一下 linear-gradient() 属性。

这里是一个工作模型。

#prog-bar-cont {
  width: 75vw;
  height: 2.5em;
}
#prog-bar-cont #prog-bar {
  background: #ffff;
  width: 100%;
  height: 100%;
  border-color: #000;
  border-style: solid;
  border-radius: 50px;
  overflow: hidden;
  position: relative;
}
#prog-bar-cont #prog-bar #background {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  
  /*Actual Stuff*/
  background: linear-gradient(-90deg, violet, #30b3fc, #70dc23, yellow, orange, #ff1076);
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition: all 3s;
  -webkit-transition: all 3s;
}

#prog-bar-cont:hover #prog-bar #background {
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
}
<h1>Rainbow Progress Bar</h1>
<p>Try hovering over the bar</p>
<div id='prog-bar-cont'>
  <div id="prog-bar">
    <div id="background"></div>
  </div>
</div>

0
投票

你可以通过将进度条嵌套在一个父元素中,并应用css属性 overflow: hidden.

您可以更改 width 级别的 bar-clipper 到所需的百分比,即 calc(300px * 0.6) 将显示60%的栏位。

.bar-clipper {
    width: calc(300px * 0.8);
    height: 20px;
    overflow: hidden;
    position: absolute;
}

.bar-wrapper {
    width: 300px;
    height: 20px;
    display: flex;
    position: absolute;
}

.bar-wrapper span {
    width: 100%;
    height: 100%;
}

.bar-wrapper .bar1 {
    background-color: #163f5f;
}

.bar-wrapper .bar2 {
    background-color: #21639b;
}

.bar-wrapper .bar3 {
    background-color: #3caea3;
}

.bar-wrapper .bar4 {
    background-color: #f6d65b;
}

.bar-wrapper .bar5 {
    background-color: #ed543b;
}
<body>
    <div class="bar-clipper">
        <div class="bar-wrapper">
            <span class="bar1"></span>
            <span class="bar2"></span>
            <span class="bar3"></span>
            <span class="bar4"></span>
            <span class="bar5"></span>
        </div>
    </div>
</body>

链接到fiddle。https:/jsfiddle.netL13yrgbm。

© www.soinside.com 2019 - 2024. All rights reserved.