Насколько мне известно, стилизация родительского элемента на основе дочернего элемента не является доступной функцией CSS. Для этого вам, вероятно, понадобится сценарий.
Было бы замечательно, если бы вы могли сделать что-то вроде div[div.a]
или div:containing[div.a]
, как вы сказали, но это невозможно.
Вы можете рассмотреть вопрос о jQuery . Его селекторы очень хорошо работают с «содержащими» типами. Вы можете выбрать div на основе его дочернего содержимого, а затем применить класс CSS к родительскому элементу в одной строке.
Если вы используете jQuery, что-то вроде этого может работать (не проверено, но теория существует):
$('div:has(div.a)').css('border', '1px solid red');
или
$('div:has(div.a)').addClass('redBorder');
в сочетании с классом CSS:
.redBorder
{
border: 1px solid red;
}
Вот документация для jQuery "имеет" селектор .