Я пытаюсь создать макет строки заголовка, который состоит из 3 частей:
- left: заголовок, который может содержать длинный текст, который может быть усечен
- center: sub-титл, который не должен быть усечен, а перенесен на новую строку
- вправо: фиксированная часть (например, для кнопки меню)
Это в основном работает, но центрированный div делаетне сжиматься, как ожидалось, поэтому он теряет некоторое количество пробела (см. метку красного прямоугольника):
Вот полный пример StackBlitz
релевантный html:
<div fxLayout="row" fxLayoutAlign="start center">
<mat-card fxFlex>
<div fxLayout="row" fxLayoutAlign="space-between center">
<div class="truncate-line">Long text can be truncated</div>
<div fxFlex="nogrow" class="action-blurb">multiple lines</div>
<div fxFlex="none" class="action-blurb"> | </div>
</div>
</mat-card>
</div>
связанный css:
.truncate-line {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Поскольку nogrow
совпадает с flex: 0 1 auto
(то есть: grow =0, shrink = 1, base = auto), я ожидаю, что центрированный div будет уменьшаться при необходимости, но это не так.
Чего мне не хватает?