@Minusator

Как изменить дочерний класс через другой дочерний класс?

Как написать CSS код, который бы менял .cat-item-all если есть класс .current-cat
<ul class="blog-category">
<li class="cat-item-all">1</li>
<li class="cat-item cat-item-71 current-cat">2</li>
<li class="cat-item cat-item-30">3</li>
<li class="cat-item cat-item-70">4</li>
</ul>


Наглядно. В списке если нажимаем на кнопку, то ей присваивается класс .current-cat

6440bfafd2f6a093283969.png

Но нам нужно при этом изменить стиль кнопки "Все посты" чтобы было так:
6440c03a2fa4d563806163.png
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
@Minusator Автор вопроса
Решил на JS
if (document.getElementsByClassName('current-cat').length > 0) {
  document.getElementsByClassName('cat-item-all')[0].classList.add('show');
	}
Ответ написан
delphinpro
@delphinpro Куратор тега CSS
frontend developer
ну если именно на CSS, то так

.blog-category:has(> .current-cat) > .cat-item-all {
  background:red;
}


Однако пока еще не работает в FireFox
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@strelok011
Версия css, которая умеет такие штуки, еще не вышла из черновиков https://habr.com/ru/articles/662355/
И как по мне - лучше такое не выпускать вовсе.
Если у Вас есть триггер для изменения состояния кнопки "тест 2", что мешает его расширить для выбора еще и "все посты"?
Вы пытаетесь размазать бизнес логику функционала страницы по разным местам, что выглядит просто ужасно.
Раньше пресловутый IE поддерживал выполнение скриптов в css, но благополучно выпилил.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы