Берём 100%, берём 1 строку вашей галереи. В ней 4 фотографии, каждая занимает по 25% не считая марджинов. Предположим что марджины у нас по 2% с каждой стороны и того 8 марджинов по 2% в итоге 16%. У родителя этой галереи делаем минусовые марджины в 2% слева и справа, чтобы марджины крайних фотографий проваливались.. В итоге у нас 6 марджинов и 12% они занимают. Остаётся не хитрая математика 100% - 12% = 88% / 4 = 22% на каждую фотографию в строке.
Я бы попробовал display: flex родительскому контейнеру задать, а этим блокам к примеру max-width: n px; Ну и дальше с флекс разметкой хорошо работать + медиазапросы .