Никита Братский,
Алгоритм:
1. Кнопкам задавайте разные id.
2. Этим же кнопкам задавайте одинаковые классы.
3. В js обращайтесь к кнопкам через класс.
4. id фотки передавайте в data- атрибут
Никита Братский, в смысле "не представляется возможным"?
Задавать разные id, а к кнопкам обращаться по классам?
Ну наймите того, для кого это возможно :)
Вариантов несколько
1. Вместо fixed использовать sticky
2. Первому блоку после фиксированного задать margin-top, равный высоте фикс блока.
Минус этого варианта очевиден: если высота по каким-то причинам изменится - будет нехорошо.
3. На js выяснять высоту фикс блока и задавать полученную величину для отступа.
Барбарис, флексами много неудобств:
1. Вам придется задавать фикс высоту контейнеру.
2. Не удобно считать отступы. Вы задаете margin-bottom 2%, но процент при этом считается от ширины родителя
Если дорабатывать флексами, то нужно просто задать высоту дочерним. Типа 50% и 33%, только с учетом отсупов.
Алгоритм:
1. Кнопкам задавайте разные id.
2. Этим же кнопкам задавайте одинаковые классы.
3. В js обращайтесь к кнопкам через класс.
4. id фотки передавайте в data- атрибут