Мне нужно реализовать вертикальную линию с процентной отметкой, которую нужно расположить относительно шкалы процентов, как показано на скриншоте:
Я попытался сделать базовую реализацию, но ничего не вышло https://stackblitz.com/edit/js-74f8sl?file=index.html Как реализовать разметку и стили для такого случая? Должен ли я использовать относительное позиционирование или мне может хватить какого-нибудь флексбокса?






Я бы, вероятно, пошел на это, сочетая гибкость и относительное / абсолютное позиционирование. В зависимости от того, какой процессор вы используете (sass), вы можете автоматически исправить это, чтобы сделать его совместимым и со старыми версиями браузеров.
Вот пример:
body {
background-color: lightgray;
}
.track-bar {
width: 600px;
height: 30px;
margin-top: 30px;
background-color: white;
display: flex;
align-items: center;
align-content: center;
flex-wrap: no-wrap;
position: relative;
z-index: 1030;
}
.rating {
height: 100%;
color: white;
opacity: 0;
position: relative;
text-align: center;
text-transform: uppercase;
display: flex;
align-items: center;
align-content: center;
justify-content: center;
}
#zero-thirty {
flex: 0 0 30%;
background-color: red;
}
#thirty-seventy {
flex: 0 0 40%;
background-color: green;
}
#seventy-hundred {
flex: 0 0 30%;
background-color: green;
}
.active {
opacity: 1;
}
.marker {
height: 40px;
width: 1px;
background-color: black;
position: absolute;
bottom: 0;
z-index: 1050;
}
.marker span {
position: absolute;
left: 50%;
transform: translateX(-50%) translateY(-100%);
}
.label-track {
margin-top: 10px;
position: relative;
color: rgba(0,0,0,.6);
width: 600px;
}
.label-track span {
position: absolute;
}<div class = "track-bar">
<div class = "rating" id = "zero-thirty">
</div>
<div class = "rating active" id = "thirty-seventy">
<span>Good</span>
</div>
<div class = "rating" id = "seventy-hundred">
</div>
<div class = "marker" style = "left: 25.07%;">
<span>25.07%</span>
</div>
</div>
<div class = "label-track">
<span style = "left: 0%;">0%</span>
<span style = "left: 30%;">30%</span>
<span style = "left: 70%;">70%</span>
<span style = "right: 0%;">100%</span>
</div>
Ваши скрипки 404