Не знаю как сделать структуру, первый раз с таким сталкиваюсь и голову ломаю второй день.
Разметка у вас с виду написана.
Если сменить флекс на грид, то можно избавиться от лишних оберток.
Только этот сервис запрещает размещать код картинками, поэтому имеет смысл быстренько заменить его на ссылку на песочницу (codepen.io), в которой видно проблему. Картинки можете вставить любые из Яндекса или воспользоваться заглушками https://picsum.photos/
Вся картинка это ссылка и при наведении на картинку текст меняет цвет.
Для этого используются соседние селекторы вида img:hover + span
Резиновые изображения должны быть.
Для этого пишут что-то типа width: 100% и/или используют object-fit
p.s. зачем вы пишете source для png просто дублируя картинку из img, это что за фокус?
Какой-то очередной баг хрома, не помню после какого обновления.
Перезапуск хрома это слишком.
Помогает отцепить вкладку от всех остальных. Иногда даже просто вытащить, потаскать и обратно вставить в ряд к остальным. Иногда действительно сделать отдельным окном.
hooli-gun, медленно: я сделала песочницу из вашего кода. В ней этой проблемы нет.
Сделайте песочницу так, чтобы проблема была видна.
После этого её можно решать.
С точки зрения семантики лучше кликать на кнопки <button>. А img внутрь или фоном стилями, в зависимости от того, что там у вас происходит.
img не является интерактивным элементом.
Что именно вы делали и что не получилось покажите в песочнице на codepen.io?
Абсолюты позиционируются относительно ближайшего родителя с позиционированием отличным от static. Обычно это relative (если родителю самому не нужно другое позиционирование).
Из этого и исходите.
TheDifferentGuy, обведите skills__programs-colums рамочкой и увидите, что в нем просто нет места для space-between. Собственно, там вообще нет свободного места, которое можно было бы распределять. Т.е. любой вариант justify-content приведет к одинаковому результату.
Думаю, начать имеет смысл с самого начала: зачем флекс для .skills
Именно он заставляет своего единственного ребенка skills__content сжиматься по контенту.
В вашем коде вообще нет space-between
Так что не понятно, с чего бы оно стало работать как вы хотите.
Сделайте песочницу с видимой проблемой на codepen.io
В качестве заглушек для картинок можно взять любые из яндекс.картинок или с помощью сервисов типа https://picsum.photos/. А можно просто сделать квадратики с фоном.
Разметка у вас с виду написана.
Если сменить флекс на грид, то можно избавиться от лишних оберток.
Только этот сервис запрещает размещать код картинками, поэтому имеет смысл быстренько заменить его на ссылку на песочницу (codepen.io), в которой видно проблему. Картинки можете вставить любые из Яндекса или воспользоваться заглушками https://picsum.photos/
Для этого используются соседние селекторы вида
img:hover + span
Для этого пишут что-то типа
width: 100%
и/или используютobject-fit
p.s. зачем вы пишете source для png просто дублируя картинку из img, это что за фокус?