I\'m trying to create a vertical progress-bar, with 8 dots on a solid line (with the 8th on the end), where every dot stands for one step in the process. See attached screen
My comment turned into an answer.
It is using an hidden This is not very flexible, CSS must be written in advance for the 5/6 options : 0,20%,40%,60%,80%,100% The codepen to play with with behind an emty .hide-it {
position: absolute;
left: -100%;
}
#myprogress {
height: 25em;
position: relative;
float: left;
width: 0.5em;
background: linear-gradient(to bottom, #00B18E 0%, #CFF8F0 0%, #CFF8F0);
margin: 1em 9em 1em 1em;
color:#00B18E;
box-shadow:0 0 15em 1em black;
}
#myprogress:after {
content: ' Progress 0%';
position:relative;
z-index: 1;
white-space: pre;
top:-1%;
}
#myprogress:before {
content: '';
position: absolute;
z-index: 1;
top: -0.2em;
left: -.25em;
width: 1em;
height: 1em;
border-radius: 50%;
box-shadow: inset 0 0 0 15px #00B18E;
}
[value="20"] + #myprogress {
background: linear-gradient(to bottom, #00B18E 20%, #CFF8F0 20%, #CFF8F0);
}
[value="20"] + #myprogress:before {
box-shadow: inset 0 0 0 15px #00B18E, 0 5em 0 0 #00B18E;
}
[value="20"] + #myprogress:after {
content:' Progress 20%';
top:19%;
}
[value="40"] + #myprogress {
background: linear-gradient(to bottom, #00B18E 40%, #CFF8F0 40%, #CFF8F0);
}
[value="40"] + #myprogress:before {
box-shadow: inset 0 0 0 15px #00B18E, 0 5em 0 0 #00B18E, 0 10em 0 0 #00B18E;
}
[value="40"] + #myprogress:after {
content:' Progress 40%';
top:39%;
}
[value="60"] + #myprogress {
background: linear-gradient(to bottom, #00B18E 60%, #CFF8F0 60%, #CFF8F0);
}
[value="60"] + #myprogress:before {
box-shadow: inset 0 0 0 15px #00B18E, 0 5em 0 0 #00B18E, 0 10em 0 0 #00B18E, 0 15em 0 0 #00B18E;
}
[value="60"] + #myprogress:after {
content:' Progress 60%';
top:59%;
}
[value="80"] + #myprogress {
background: linear-gradient(to bottom, #00B18E 80%, #CFF8F0 80%, #CFF8F0);
}
[value="80"] + #myprogress:before {
box-shadow: inset 0 0 0 15px #00B18E, 0 5em 0 0 #00B18E, 0 10em 0 0 #00B18E, 0 15em 0 0 #00B18E, 0 20em 0 0 #00B18E;
}
[value="80"] + #myprogress:after {
content:' Progress 80%';
top:79%;
}
[value="100"] + #myprogress {
background: linear-gradient(to bottom, #00B18E 100%, #CFF8F0 100%, #CFF8F0);
}
[value="100"] + #myprogress:before {
box-shadow: inset 0 0 0 15px #00B18E, 0 5em 0 0 #00B18E, 0 10em 0 0 #00B18E, 0 15em 0 0 #00B18E, 0 20em 0 0 #00B18E, 0 25em 0 0 #00B18E;
}
[value="100"] + #myprogress:after {
content:' Progress 100%';
top:99%;
}