Я пытаюсь создать виджет таким образом, чтобы субтитры никогда не были длиннее названия. Таким образом, заголовок будет контролировать ширину виджета, а субтитр будет обернут, если он станет шире, чем заголовок. И я пытаюсь сделать это без JavaScript, если это возможно.Создание ширины одного элемента зависит от его ширины брата.
Я получил близко (см. Ниже фрагмент). Я смог сделать субтитры искусственно короткими, но даже в этом случае строка, по которой она по какой-то причине расширялась, соответствовала всему пространству контейнера, а не просто пространству, используемому его потомком! на самом деле, пространство, которое оно занимало, именно то, что было бы, если бы оно не было обернуто.
#container {
background: #DDD;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.row {
display: flex;
}
#subtitle {
flex-basis: 0;
}
<div id="container">
<div class="row">
<h1 id="title">Title that is fairly long</h1>
</div>
<div class="row">
<h3 id="subtitle">Subtitle that is a long subtitle and that is even longer and oh it is just so super!</h3>
</div>
</div>
мне нужно держать субтитров в потоке (не position:absolute
), и название должно быть в состоянии обернуть, если он получает супер длинный (так что это не просто перекинуться выключить страница). Есть ли способ иметь два ряда, один под другим, и один может быть только до тех пор, пока другой?
Контейнер с фиксированной шириной в моем случае не является вариантом - виджет должен иметь динамическую ширину (на основе названия). – Skitterm