Как повернуть линии часов на 90 градусов в CSS и поместить текст перед ним?

У меня есть следующая структура CSS, которая немного сложнее. Полный код помещен в этот JSFiddle, и я борюсь с последней мыслью, которую мне нужно реализовать там.

Между горизонтальными линиями (которые находятся на одной линии с кругами) мне нужно было бы повернуть дополнительную линию (и) на 90 градусов и немного текста перед ней. Это должно выглядеть примерно так, как на этой картинке, где я добавил недостающие элементы красным цветом.

Я уже пытался реализовать что-то вроде этого, как в скрипте по ссылке выше, но это не работает, как ожидалось. Обратите внимание, что в HTML также есть некоторый встроенный CSS, который является динамическим и генерируется во время выполнения.

В качестве примечания я попытался добавить этот новый элемент HTML, но я бы предпочел не использовать встроенный стиль для добавления этих строк (если это возможно). Вот CSS и HTML для вновь добавленных элементов:

.chart .left-line {
  transform: rotate(-90deg);
  display: flex;
  align-items: center;
  position: absolute;
  right: -257px;
  width: 530px;
  z-index: 10;
  top: 245px;
}

.chart .left-line hr {
  width: 100%;
  background: #1d2026;
  opacity: 0.25;
}

.chart .left-line-container {
  width: 100%;
  font-family: Open Sans;
  font-size: 12px;
  color: #1d2026;
  font-weight: 700;
  margin: 0 16px;
  -webkit-transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg);
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
<div class="left-line-container" style="top: 135px;">
  <hr class="left-line-hr"> 12.34
</div>

2 ответа

Я надеюсь, что это может помочь:

.flex-parent {
  display: flex;
  width: 100%;
  height: 180px;
  align-items: center;
  padding: 50px 0;
  transform: rotate(-90deg);
}

.flex-child-edge {
  flex-grow: 2;
  height: 1px;
  background-color: #e3e3e3;
  border: 0.5 #e3e3e3 solid;
}
.flex-child-text {
  flex-basis: auto;
  flex-grow: 0;
  margin: 0px 5px 0px 5px;
  text-align: center;
  padding: 20px;
  font-size: 13px;
  line-height: 150%;
color: #777777;
 letter-spacing: 3px;
}
 <div class="flex-parent">
        <div class="flex-child-edge"></div>
        <div class="flex-child-text">text here</div>
        <div class="flex-child-edge"></div>
      </div>

Вы можете использовать следующий код для решения вашей проблемы:

hr{
    width: 1px;
    height: 100%
}
Другие вопросы по тегам