0xD34F, согласен, что говнокод полный. Но это лучше чем JS.
Когда Вам нужно сделать сортировку данных а результат выгрузить обратно в файл, то нет мысла делать папку с константами языковой локализации, нет смысла соблюдать MVC, даже на продакшене лучше сделать говнокодом чем использовать JS, за которым нужно следить чтобы конфликтов не было или прочего.
И самое главное, в идеале на JS надо делать бизнес логику а не перекрашивать флажки. стилистически.
Сергей Кореневский, :has работает на браузерах 2022г >(я не знал что он и такое может). Если у вас нет вложения, и количество input только 5 (так как оно сработает если выбрано как минимум 5 а не ровно 5), то это сработает, и даже будет лучше чем решение на JS,
уже Counter`ы есть и всякие nth-child`ы
но нет if else, nth-childe используется для позиции а значение Counter можно вывести только в content , через JS легче считать количество checked, добавлять и удалить class
Hovhannes Varosyan, Вы правы, у меня действительно было много вложенных :HAS, мне пришлось
input[type=checkbox] повынимать из Label чтобы только один был :HAS.
Сергей Кореневский, почему ты так не хочешь исползовать JS, у тега < a > предназначение навигация, то что ты хочешь легче делать через JS чем html, так быстрее, легче, большая поддержка старых браузеров, больше свободы, легче менять, а при SPA reload не будет
А как в css посчитать количество элементов?
Никак.
counter этим занимается.
И даже if и else есть в css и даже уже местами с range синтаксисом.
Но проблема в том, что счетчик дает строку, а не число.
Возможно, это изменится в будущем. Ну или скорее заработает что-то типа calc(counter(checked-sum) + 0). Сейчас у меня не получился такой фокус.
Также есть sibling-index()
Но пока нет sibling-index(of ...)
И он дает число.
Сейчас можно только input[type="checkbox"]:checked, а это не поможет в сценарии автора.
Пишу это сейчас для тех, кто придёт в этот вопрос в будущем, потому что меняются сейчас такие вещи быстро.