То, что вы просите, невозможно.CSS читает слева направо, это означает, что вы не можете указать родительский элемент на основе дочерних атрибутов.Вы можете сделать это в javascript, но, как вы сказали, вы не хотите использовать это.
Пример HTML:
<div class="box">
<div class="green">
Some text
</div>
</div>
<div class="box">
<div class="red">
Some Text
</div>
</div>
Пример CSS:
.box {
color: blue;
}
.box .green {
color: green;
}
.box .red {
color: red;
}
Каквы можете видеть, что вы можете выбрать родительский элемент сам по себе, но не на основе дочерних атрибутов.
Технически, вы всегда должны работать вовне. Если вам нужен определенный стиль для применения к родителю, вы должны добавитьдополнительный класс.
Пример HTML:
<div class="box green">
Some Text
</div>
Пример CSS:
.box.green {
color: green;
}
В приведенном выше CSS вы можете «сложить» классы, чтобы выбрать нужный элемент.
Надеюсь, это поможет, если у вас есть какие-либо вопросы, просто задавайте.Я могу опубликовать вариант JavaScript, который сможет выбрать элемент на основе атрибутов дочернего элемента, если вы откроете для этого новую тему.