Если элемент .value
будет содержать только цифры, то вы, вероятно, можете обойтись простым изменением line-height
. Сделайте его немного меньше, чтобы линейный блок уменьшался до высоты шрифта.
.value_and_unit {
display: flex;
border: 1px solid red; /* demo */
}
.value {
line-height: .75; /* key adjustment */
font-size: 120px;
margin-right: 10px;
}
.unit_container {
display: flex;
flex-flow: column nowrap;
justify-content: flex-end;
align-items: center;
}
.divider {
width: 100%;
}
<div class="value_and_unit">
<span class="value">340</span>
<div class="unit_container">
<span class="unit">m</span>
<hr class="divider" />
<span class="unit">s</span>
</div>
</div>
Однако этот метод не будет работать, если элемент .value
содержит случайные буквы, поскольку дополнительный пробел над и под числами существует для приспособить спусков и спусков .
В этом случае вам нужно будет попробовать другой метод. align-items: flex-end
будет работать (т. Е. Визуальные базовые линии будут выровнены), но в этом случае единицы будут выровнены ниже чисел.
.value_and_unit {
display: flex;
align-items: flex-end;
border: 1px solid red;
padding: 5px;
}
.value {
font-size: 120px;
margin-right: 10px;
border: 1px dashed blue;
}
.unit_container {
display: flex;
flex-flow: column nowrap;
align-items: center;
border: 1px dashed blue;
}
.divider {
width: 100%;
}
<div class="value_and_unit">
<span class="value">340jÁ </span>
<div class="unit_container">
<span class="unit">m</span>
<hr class="divider" />
<span class="unit">s</span>
</div>
</div>
Итак, поскольку вы хотите, чтобы базовая линия "s" была выровнена с базовой линией чисел, вы на самом деле не ищите выравнивание базовой линии (потому что истинная базовая линия коробка большего размера находится под "j"). Вы хотите произвольное выравнивание, поэтому в этом случае может потребоваться корректировка line-height
.