Есть ли способ добиться следующего?Использование flexbox для обертывания всех или всех
Начиная с трех элементов в одной строке, если общая ширина превышает ширину родительского элемента flex, привязывайтесь к ориентации столбца.
Основным ограничением для решения для моего конкретного случая использования является то, что я не могу использовать медиа-запросы, чтобы обмениваться гибким направлением, хотя это, вероятно, было бы самой легкой задачей.
Медиа-запросы не являются жизнеспособным решением в этом случае, поскольку компонент является автономным и может быть размещен в различных местах, которые будут определять ширину контейнера независимо от ширины браузера. Если есть какая-то магия, в которой медиа-запросы могут основываться на родительском контейнере, а не на странице, это было бы потрясающе, но пока я не видел ничего подобного.
В этом fiddle второй div с более длинными именами должен быть завернут в три строки, но ближайший я могу получить две строки.
<div class="container">
<span class="item">Dan Martinez </span>
<span class="item">@DanMartinez101 </span>
<span class="item">an hour ago </span>
</div>
<br/>
<div class="container">
<span class="item">Someone with a really long name </span>
<span class="item">@AndAReallyLongHandle </span>
<span class="item">about three million years ago </span>
</div>
.container {
display: flex;
flex-wrap: wrap;
width: 400px;
background-color: 'red';
}
.item {
white-space: nowrap;
flex: 0 1 auto;
}
Это собирается требовать JS. –
* ... медиа-запросы не могут использоваться для замены направления flex ... * Не верно. «flex-direction» можно легко изменить с помощью медиа-запроса. –
@Michael_B Извините за то, что я не уточнил это ограничение. Я имел в виду, что, хотя это будет работать и будет самым простым решением, я не смогу сделать это в текущем приложении. Я уточню свой вопрос, чтобы быть более ясным. –