Задать вопрос
hummingbird
@hummingbird

Можно ли в CSS проверить содержит ли один класс внутри себя другой класс?

.first {
	.second {
		/* ... */
	}
}

<div class="first">
	<div class="second"></div>
</div>


Можно ли как-нибудь без JS, на чистом CSS написать для класса first правило, что, если он внутри себя будет содержать класс second, то применить такие-то свойства?

Конкретно я хочу сделать следующее:
Если блок first не содержит в себе блок second, то применяются дефолтные свойства.
Но если вдруг в блоке first появляется блок second, то применить такие-то свойства поверх дефолтных.
  • Вопрос задан
  • 1142 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Все свойства идут каскадом (отсюда и название).
Как следствие - ребенок на родителя оказать влияние не может.
Ответ написан
Комментировать
riot26
@riot26
<:З )~~
На чистом CSS на сегодняшний день нельзя, на jQ как-то так:
$('.first:has(.second)').addClass('has_second');
.first { ... }
.second { ... }
.has_second { ... }
Ответ написан
Комментировать
abler98
@abler98
Software Engineer
.first > .seconds {
    ...
}

Или я не понял
Ответ написан
magnat_dz
@magnat_dz
Уже можно на css:
.first:has(.second) {
...
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект