Держите codepen.io/delphinpro/pen/BWJEgG
Простая линейная структура. В определенных пределах можно менять положение плиток, не меняя css код.
Если еще помозговать, можно расширить эти пределы, добавить другие размеры плиток. Но на это нужно время, которого у меня нет.
4 контейнера (2 строки, 1 строка, 2 строки, 1 строка) и на флексах.
Просто иначе перестроение будет не очень корректным. Указывать ширину лучше в % или vh/vw.
Либо использовать jquery библиотека masonry, их много, выбирайте какая нравится.
Flexbox' ом довольно просто. Даже не используя column. Конечно, придется поиграться с flex-grow, flex-basis, wrap/no-wrap и flex-контейнерами внутри flex-элементов.
так как на скрине ты даже флексом не сможешь их нормально расположить. только абсолютом. так что либо юзай masonry, либо делай на ее основе свой плагин