Этого нельзя добиться только с CSS. здесь вам нужно немного javascript. В приведенном ниже примере я применяю класс .redBorder
к div .class2 с div .class3 внутри, иначе он будет иметь класс .blackBorder
.
(function() {
let class2Divs = document.getElementsByClassName("class2");
Array.from(class2Divs).forEach(elem => {
// check whether this div has class3 div
if(elem.getElementsByClassName("class3").length) {
//if this class2 div has class3 inside, run this code
elem.classList.add("redBorder");
}
else {
//if this class2 div doesn't has class3 inside, run this code
elem.classList.add("blackBorder");
}
});
}());
div {
margin: 20px;
}
.redBorder {
border: 3px solid red;
}
.blackBorder {
border: 3px solid black;
}
<div class="class1">
<div class="class2">
<div class="class3">This div has class3 div</div>
</div>
<div class="class2">
<div>This div doesn't has class3 div</div>
</div>
</div>