через css grid
#parent {
display: grid;
grid-template-rows: repeat(auto-fit, minmax(250px, 1fr));
}
auto-fit - это когда новый элемент, не помещающийся по ширине/ высоте в родительский блок, будет отображен в новом ряду/ колонке. например, родитель шириной 500px, содержит два блока по 250px минимум - при добавлении нового блока, блок либо уйдет в новый ряд (grid-template-columns), либо в новую колонку (grid-template-rows).