How can i apply style to the parent div of .apply-style-here the styles by meeting only this condition
- Parent of .apply-style-here should be a plain div or without the .second-stage class
- .apply-style-here parent’s parent should not have a .second-stage
Thank you
<div class="first-stage">
<div>
<div class="apply-style-here">Content</div>
</div>
</div>
<div class="first-stage">
<div class="second-stage">
<div>
<div class="apply-style-here">Content</div>
</div>
</div>
<div>
<div class="apply-style-here">Content</div>
</div>
</div>
Tried solution
/* Result: Put border to all parent of apply-style-here class */
.first-stage:has(div > .apply-style-here) > div {
/* margin-top: 20px; */
border: 1px solid red;
}
/* Result: No styles applied at all */
.first-stage:not('div > .second-stage') > div {
border: 1px solid blue;
}
/* Result: No styles applied at all */
.first-stage:has(div:not('.second-stage') > .apply-style-here) > div {
border: 1px solid blue;
}
/* Result: Applied to all .apply-style-here even second .second-stage is present */
.first-stage:has(div:not(.second-stage) > .apply-style-here) > div {
border: 1px solid blue;
}
/* Result: Applied to all .apply-style-here even second .second-stage is present */
.first-stage:has(div:not(.second-stage > .apply-style-here)) > div {
border: 1px solid blue;
}
2
Answers
Judging by your description, this following selector could work:
as commented , selector
:has()
is not yet supported everywhere . https://caniuse.com/css-hasAside, some your
:not()
selector rules could be rewritten via the[class="xclass"]
instead'.xclass'
your style sheet could be rewrite :
online demo you can fork and edit https://codepen.io/gc-nomade/pen/QWJWbpG