Сделал текущую задачу с помощью псевдокласса active
Не нужно путать :active и :checked.
Почитайте разницу.
И либо замените div на радио-инпуты или чекбоксы.
Либо замените их на кнопки и добавляйте класс на js.
div в любом случае не является интерактивным элементом.
transition: background 9999999s;
А это вообще сильный ход.
Почти через 116 дней цвет вернется в норму.
Tramplin333,
0. Простыня кода - очень хорошо, но в голове компилировать не удобно. Делайте песочницы на сервисах типа jsfiddle.net
1.
<h2 class="map_data"><li>2020</li></h2>
Это что за конструкция из тегов?
Всегда если что-то идет не по плану, начинайте с проверки валидатором.
2. Дальше я написала - начните с ширины. На скрине видно, что темные блоки занимают меньше половины ширины родителя. У вас 690 и 440.
И я бы сделала общую обертку, чтобы было кому рисовать вертикальную палку.
3. Используйте одинаковые классы для блоков и nth-child, если блоки идут поочередно.
4. Дальше подумайте, зачем вы пишете space-between, если на скрине явно видно, что никакого space-between там в помине нет.
Артур Левенсон, Артур, что должно происходить при клике на кнопку?
Это и пишите в клике.
Сейчас вы пишете, что нужно только чтобы добавился класс. Ну ок, он добавился. Дальше что?
Распишите алгоритм просто по-русски. Потом переведите на JS.
А ведь даже в предыдущих вопросах был код с нормальной обработкой клика (если я правильно догадываюсь, что вы пытаетесь сотворить)
Вы спросили почему не срабатывает клик по кнопке. Я объяснила.
У кнопок нет родителя с классом box => ничего не происходит.
Более того, про класс box в коде больше нет ни слова. Поэтому будет удивительно, если что-то сработает.
Это то, что написано у вас в скрипте по поводу того, что должно происходить при клике на кнопку.
Взять родителя кнопки и если он .box, то задать ему класс. И это всё.