отдельно каждому элементу стили задавать все равно придется.
так что располагай в одну линию любыми способами и задавай к примеру margin-top каждому элементу.
все зависит от направленности ресурса.
вот к примеру тостер. ты думаешь на тостере есть хотя бы 1% юзеров которые сидят на ie? (не считая таких которые заходят потестить "а нет ли косяков верстки на тостере")
вот и отталкиваешься от того на кого направлен ресурс.
p.s. что касаемо меня - я сразу обговариваю поддержку версий ie, andriod, ios и т.д. если дизайн такой что придется юзать либо flexbox либо городить большие костыли - сразу сообщаю об этом. что поддержка будет к примеру ie11+
так как на скрине ты даже флексом не сможешь их нормально расположить. только абсолютом. так что либо юзай masonry, либо делай на ее основе свой плагин
это так не работает. ты в любом случае должен знать все. и float и flex и inline-block и даже display: table. от того что ты сетку сделаешь по flex - это не значт что в других местах в проекте тебе не придется применить float. или еще чего.