Как с помощью Grid CSS / Flex CSS сделать такую сетку с блоками?
Проблема в том, что я не знаю сколько блоков у меня может быть. Ширина каждого блока 351px. Высота блока определяется количеством текста в нём. Блоки адаптивные, т.е. при сужении страницы, минимальное количество блоков должно быть 1, остальные переносятся на другую строку. А при расширении страницы - ограничено только разрешением экрана. Каждый блок должен притягиваться друг к другу:
Вот мой CSS:
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(351px, 351px));
gap: 16px;
align-items: start;
justify-content: center;
}
.grid-element {
background-color: lightskyblue;
padding: 20px;
border-radius: 5px;
}
<div class="grid-container">
<div *ngFor="let item of cards" class="grid-element">
{{ item.text }}
</div>
</div>
Подскажите, задача вообще выполнимая?
Ответы (1 шт):
Автор решения: svm
→ Ссылка
Есть библиотека Masonry для этих целей.
На чистом CSS вряд ли получится такое сделать. Есть соответствующая статья на хабре: Нативный Masonry Layout в CSS Grid Level 3.

