Создание асимметричных резиновых сеток, подобных Pinterest, возможно с использованием CSS Grid Layout без ручного вычисления отступов. Ключевые свойства для управления высотой блоков включают

Для горизонтальной эластичности используется
При динамическом изменении контента, например при увеличении текста, важно учитывать, что блоки могут растягиваться, изменяя общую высоту макета. Это можно компенсировать, закладывая в дизайн чуть большую высоту блоков, или с помощью медиа-запросов, увеличивая высоту строки
grid-gap
, grid-auto-rows
со значением auto
, который позволяет строкам подстраиваться под контент, и grid-row-end
со значением span n
, задающим количество занимаемых строк. Высота блока определяется количеством строк, вычисляемым как высота блока, деленная на размер промежутка плюс один. 
Изображение носит иллюстративный характер
Для горизонтальной эластичности используется
grid-template-columns
с функцией repeat()
, где задается максимальное количество колонок и минимальная ширина. Это позволяет блокам перестраиваться при изменении ширины экрана, автоматически переходя на новую строку. При динамическом изменении контента, например при увеличении текста, важно учитывать, что блоки могут растягиваться, изменяя общую высоту макета. Это можно компенсировать, закладывая в дизайн чуть большую высоту блоков, или с помощью медиа-запросов, увеличивая высоту строки
grid-auto-rows
на небольшую величину, например, 2px, сохраняя пропорциональность между блоками.