Блоки по высоте разные, если хотите использовать флоаты, то нужно убирать обтекание у элемента который переходит на новую строку ( на моем экране это каждый 6 элемент). То есть вы должны сделать каждому 6 элементу
clear: both;
Ну и дальше по @media
пройтись, если на меньшем разрешении уже помещается 4 элемента, то у каждого 6 ставим
clear: none;
а каждому 5 ставим
clear: both;
и т.д.
Или же если нужно чтобы блоки были одинаковые, то задай им фиксированную высоту, как написали люди выше.