进度条条纹

时间:2015-04-01 08:16:56

标签: html css progress

我正在尝试创建一个带有条纹的进度条,如下所示: http://css-tricks.com/examples/ProgressBars/

见截图:

enter image description here

但是,我无法将我的代码汇总到一起,使其像这样生动。

<!-- begin snippet: js hide: false -->

<!-- language: lang-css -->

.container{
  width: 400px;
  margin: 0 auto;

}

.bar{
  width: 100%;
  background: #141414;
  padding: 17px;
  -webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
-moz-border-radius-topright: 5px;
-moz-border-radius-bottomright: 5px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}

.bar-fill{
  height: 15px;
  display: block;
  background: #45c9a5;
  width: 0%;
  border-radius: 8px;

  -webkit-transition: width 0.8s ease;
  transition: width 0.8s ease;
  -webkit-animation: mymove 5s infinite; 
  animation: mymove 5s infinite;
}


.bar-unfill{
  height: 15px;
  display: block;
  background: #fff;
  width: 100%;
  border-radius: 8px;
}

/* Chrome, Safari, Opera */ 
@-webkit-keyframes mymove {
    from {width: 0%;}
    to {width: 100%;}
} 

/* Standard syntax */ 
@keyframes mymove {
   from {width: 0%;}
    to {width: 100%;}
}



.title{
 background: #545965;
 color: #fff;
 padding: 15px;
 float: left;
 position: relative;
 right: 60px;
-webkit-border-top-left-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-bottomleft: 5px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}

这是HTML:

 <div class="container">
<div class="plain-title">Plain</div>
  <div class="bar">
    <span class="bar-unfill">
        <span class="bar-fill"></span>
    </span>    
  </div>
</div>

必须只有PURE CSS

4 个答案:

答案 0 :(得分:1)

从您的示例中获取代码:

.meter {
height: 20px;  /* Can be anything */
position: relative;
margin: 60px 0 20px 0; /* Just for demo spacing */
background: #555;
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
border-radius: 25px;
padding: 10px;
-webkit-box-shadow: inset 0 -1px 1px rgba(255,255,255,0.3);
-moz-box-shadow   : inset 0 -1px 1px rgba(255,255,255,0.3);
box-shadow        : inset 0 -1px 1px rgba(255,255,255,0.3);
}
.meter > span {
display: block;
height: 100%;
   -webkit-border-top-right-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
	   -moz-border-radius-topright: 8px;
	-moz-border-radius-bottomright: 8px;
		   border-top-right-radius: 8px;
		border-bottom-right-radius: 8px;
	-webkit-border-top-left-radius: 20px;
 -webkit-border-bottom-left-radius: 20px;
		-moz-border-radius-topleft: 20px;
	 -moz-border-radius-bottomleft: 20px;
			border-top-left-radius: 20px;
		 border-bottom-left-radius: 20px;
background-color: rgb(43,194,83);
background-image: -webkit-gradient(
  linear,
  left bottom,
  left top,
  color-stop(0, rgb(43,194,83)),
  color-stop(1, rgb(84,240,84))
 );
background-image: -moz-linear-gradient(
  center bottom,
  rgb(43,194,83) 37%,
  rgb(84,240,84) 69%
 );
-webkit-box-shadow:
  inset 0 2px 9px  rgba(255,255,255,0.3),
  inset 0 -2px 6px rgba(0,0,0,0.4);
-moz-box-shadow:
  inset 0 2px 9px  rgba(255,255,255,0.3),
  inset 0 -2px 6px rgba(0,0,0,0.4);
box-shadow:
  inset 0 2px 9px  rgba(255,255,255,0.3),
  inset 0 -2px 6px rgba(0,0,0,0.4);
position: relative;
overflow: hidden;
}
.meter > span:after, .animate > span > span {
content: "";
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
background-image:
   -webkit-gradient(linear, 0 0, 100% 100%,
	  color-stop(.25, rgba(255, 255, 255, .2)),
	  color-stop(.25, transparent), color-stop(.5, transparent),
	  color-stop(.5, rgba(255, 255, 255, .2)),
	  color-stop(.75, rgba(255, 255, 255, .2)),
	  color-stop(.75, transparent), to(transparent)
   );
background-image:
	-moz-linear-gradient(
	  -45deg,
	  rgba(255, 255, 255, .2) 25%,
	  transparent 25%,
	  transparent 50%,
	  rgba(255, 255, 255, .2) 50%,
	  rgba(255, 255, 255, .2) 75%,
	  transparent 75%,
	  transparent
   );
z-index: 1;
-webkit-background-size: 50px 50px;
-moz-background-size: 50px 50px;
background-size: 50px 50px;
-webkit-animation: move 2s linear infinite;
-moz-animation: move 2s linear infinite;
   -webkit-border-top-right-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
	   -moz-border-radius-topright: 8px;
	-moz-border-radius-bottomright: 8px;
		   border-top-right-radius: 8px;
		border-bottom-right-radius: 8px;
	-webkit-border-top-left-radius: 20px;
 -webkit-border-bottom-left-radius: 20px;
		-moz-border-radius-topleft: 20px;
	 -moz-border-radius-bottomleft: 20px;
			border-top-left-radius: 20px;
		 border-bottom-left-radius: 20px;
overflow: hidden;
}

.animate > span:after {
display: none;
}

@-webkit-keyframes move {
0% {
   background-position: 0 0;
}
100% {
   background-position: 50px 50px;
}
}

@-moz-keyframes move {
0% {
   background-position: 0 0;
}
100% {
   background-position: 50px 50px;
}
}


.orange > span {
background-color: #f1a165;
background-image: -moz-linear-gradient(top, #f1a165, #f36d0a);
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f1a165),color-stop(1, #f36d0a));
background-image: -webkit-linear-gradient(#f1a165, #f36d0a);
}

.red > span {
background-color: #f0a3a3;
background-image: -moz-linear-gradient(top, #f0a3a3, #f42323);
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f0a3a3),color-stop(1, #f42323));
background-image: -webkit-linear-gradient(#f0a3a3, #f42323);
}

.nostripes > span > span, .nostripes > span:after {
-webkit-animation: none;
-moz-animation: none;
background-image: none;
}
<div class="meter">
	<span style="width: 25%"></span>
</div>

答案 1 :(得分:1)

在这里,您可以找到您要找的内容。

.meter {
			height: 20px;  /* Can be anything */
			position: relative;
			margin: 60px 0 20px 0; /* Just for demo spacing */
			background: #555;
			-moz-border-radius: 25px;
			-webkit-border-radius: 25px;
			border-radius: 25px;
			padding: 10px;
			-webkit-box-shadow: inset 0 -1px 1px rgba(255,255,255,0.3);
			-moz-box-shadow   : inset 0 -1px 1px rgba(255,255,255,0.3);
			box-shadow        : inset 0 -1px 1px rgba(255,255,255,0.3);
		}
		.meter > span {
			display: block;
			height: 100%;
			   -webkit-border-top-right-radius: 8px;
			-webkit-border-bottom-right-radius: 8px;
			       -moz-border-radius-topright: 8px;
			    -moz-border-radius-bottomright: 8px;
			           border-top-right-radius: 8px;
			        border-bottom-right-radius: 8px;
			    -webkit-border-top-left-radius: 20px;
			 -webkit-border-bottom-left-radius: 20px;
			        -moz-border-radius-topleft: 20px;
			     -moz-border-radius-bottomleft: 20px;
			            border-top-left-radius: 20px;
			         border-bottom-left-radius: 20px;
			background-color: rgb(43,194,83);
			background-image: -webkit-gradient(
			  linear,
			  left bottom,
			  left top,
			  color-stop(0, rgb(43,194,83)),
			  color-stop(1, rgb(84,240,84))
			 );
			background-image: -moz-linear-gradient(
			  center bottom,
			  rgb(43,194,83) 37%,
			  rgb(84,240,84) 69%
			 );
			-webkit-box-shadow:
			  inset 0 2px 9px  rgba(255,255,255,0.3),
			  inset 0 -2px 6px rgba(0,0,0,0.4);
			-moz-box-shadow:
			  inset 0 2px 9px  rgba(255,255,255,0.3),
			  inset 0 -2px 6px rgba(0,0,0,0.4);
			box-shadow:
			  inset 0 2px 9px  rgba(255,255,255,0.3),
			  inset 0 -2px 6px rgba(0,0,0,0.4);
			position: relative;
			overflow: hidden;
		}
		.meter > span:after, .animate > span > span {
			content: "";
			position: absolute;
			top: 0; left: 0; bottom: 0; right: 0;
			background-image:
			   -webkit-gradient(linear, 0 0, 100% 100%,
			      color-stop(.25, rgba(255, 255, 255, .2)),
			      color-stop(.25, transparent), color-stop(.5, transparent),
			      color-stop(.5, rgba(255, 255, 255, .2)),
			      color-stop(.75, rgba(255, 255, 255, .2)),
			      color-stop(.75, transparent), to(transparent)
			   );
			background-image:
				-moz-linear-gradient(
				  -45deg,
			      rgba(255, 255, 255, .2) 25%,
			      transparent 25%,
			      transparent 50%,
			      rgba(255, 255, 255, .2) 50%,
			      rgba(255, 255, 255, .2) 75%,
			      transparent 75%,
			      transparent
			   );
			z-index: 1;
			-webkit-background-size: 50px 50px;
			-moz-background-size: 50px 50px;
			background-size: 50px 50px;
			-webkit-animation: move 2s linear infinite;
			-moz-animation: move 2s linear infinite;
			   -webkit-border-top-right-radius: 8px;
			-webkit-border-bottom-right-radius: 8px;
			       -moz-border-radius-topright: 8px;
			    -moz-border-radius-bottomright: 8px;
			           border-top-right-radius: 8px;
			        border-bottom-right-radius: 8px;
			    -webkit-border-top-left-radius: 20px;
			 -webkit-border-bottom-left-radius: 20px;
			        -moz-border-radius-topleft: 20px;
			     -moz-border-radius-bottomleft: 20px;
			            border-top-left-radius: 20px;
			         border-bottom-left-radius: 20px;
			overflow: hidden;
		}

		.animate > span:after {
			display: none;
		}

		@-webkit-keyframes move {
		    0% {
		       background-position: 0 0;
		    }
		    100% {
		       background-position: 50px 50px;
		    }
		}

		@-moz-keyframes move {
		    0% {
		       background-position: 0 0;
		    }
		    100% {
		       background-position: 50px 50px;
		    }
		}
<div class="meter animate">
  <span style="width: 50%"><span></span></span>
</div>

答案 2 :(得分:0)

以下是您可以尝试的代码:

<!DOCTYPE html>
<html>
<head>
<title>Progress bar</title>
<style>
#bar {
   width: 400px;
   height: 40px;
   background: grey;
   border-radius: 0%;
   margin-top: 100px;
   margin-bottom: 0px;
   margin-left: 400px;
   margin-right: 0px;
}
#stripes {
   width: 0%;
   height: 30px;
   background: lime;
   margin-top: -13px;
   margin-bottom: 0px;
   margin-left: 0px;
   margin-right: 0px;
   -webkit-animation: myfirst 5s;
   -moz-animation: myfirst 5s;
   -o-animation: myfirst 5s;
   animation: myfirst 5s;
}

@-webkit-keyframes myfirst {
        0% {width: 0%;}
       10% {width: 10%;}
       20% {width: 20%;}
       30% {width: 30%;}
       40% {width: 40%;}
       50% {width: 50%;}
       60% {width: 60%;}
       70% {width: 70%;}
       80% {width: 80%;}
       90% {width: 90%;}
      100% {width: 100%;}
}
@keyframes myfirst {
        0% {width: 0%;}
       10% {width: 10%;}
       20% {width: 20%;}
       30% {width: 30%;}
       40% {width: 40%;}
       50% {width: 50%;}
       60% {width: 60%;}
       70% {width: 70%;}
       80% {width: 80%;}
       90% {width: 90%;}
      100% {width: 100%;}
}
</style>
</head>
<body>

<div id="bar">
<br />
<div id="stripes"></div>
</div>
</body>
</html>

这里还有一个jsfiddle https://jsfiddle.net/r8k2tzo2/

答案 3 :(得分:0)

将此添加到您的css

.bar-fill {
    position: relative;
}

.bar-fill:after {
    content:"";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-image: -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, rgba(255, 255, 255, .2)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.75, rgba(255, 255, 255, .2)), color-stop(.75, transparent), to(transparent));
    background-image: -moz-linear-gradient( -45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent );
    z-index: 1;
    -webkit-background-size: 50px 50px;
    -moz-background-size: 50px 50px;
    background-size: 50px 50px;
    -webkit-animation: move 2s linear infinite;
    -moz-animation: move 2s linear infinite;
    -webkit-border-top-right-radius: 8px;
    -webkit-border-bottom-right-radius: 8px;
    -moz-border-radius-topright: 8px;
    -moz-border-radius-bottomright: 8px;
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
    -webkit-border-top-left-radius: 20px;
    -webkit-border-bottom-left-radius: 20px;
    -moz-border-radius-topleft: 20px;
    -moz-border-radius-bottomleft: 20px;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    overflow: hidden;
}

@-webkit-keyframes move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 50px 50px;
    }
}
@keyframes move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 50px 50px;
    }
}

演示在这里https://jsfiddle.net/mandarin6b0/7b8uf9pn/3/