Реализуйте процентную точку с помощью CSS

Мне нужно реализовать вертикальную линию с процентной отметкой, которую нужно расположить относительно шкалы процентов, как показано на скриншоте:

Реализуйте процентную точку с помощью CSS

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

Ваши скрипки 404

Madison Courto 30.11.2018 05:04
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы, вероятно, пошел на это, сочетая гибкость и относительное / абсолютное позиционирование. В зависимости от того, какой процессор вы используете (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>

Другие вопросы по теме