У меня есть 6 расширяемых блоков, которые я хочу вести следующим образом:
- Гибкая компоновка:
- На мобильном устройстве находиться в одном столбце из 6 блоков
- На планшете / маленьком ноутбуке, быть в 2 колонках по 3 коробки в каждой
- На рабочем столе, в 3 колонках по 2 коробки в каждой
- Не должно быть пробелов между полями встолбец, независимо от того, развернуты ли один или несколько блоков
Желаемый (рабочий стол)
.container {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
}
.list {
width: 100%; //changed with media queries to allow multiple columns
}
<div class="container">
<div class="list">
<h2>Clickable Heading</h2>
<ul class="hidden">
<!-- List items -->
</ul>
</div>
<!-- 5 more of DIV.list -->
</div>
То, что я пробовал
Достижение цели №1 легко с Flexbox, но проблема в том, чтонаправление flex - это строки, а не столбцы, поэтому при развертывании поля в строке 1 ВСЕ строки 2 перемещаются вниз, включая блоки в других столбцах.Это нарушает цель № 2.
НЕПРАВИЛЬНО
Достижение цели № 2 легко достигается путем изменения flex-direction
до column
, но тогда нет способа обернуть блоки в дополнительные столбцы, не указав фиксированную высоту для контейнера, что, очевидно, невозможно сделать, когда высота зависит от того, развернуты один или несколько блоков или нет.
Заключение отдельных блоков в DIV в контейнере и изменение этих DIV'ов с flex-wrap
на column
, очевидно, работает ... но только для одного макета.Мне пришлось бы переупаковывать отдельные коробки в DIV для каждого макета, что полностью сводит на нет смысл Flexbox.
Есть ли способ достичь моей цели?