Jak mogę powiedzieć CSS: not () selector, aby wpływał na wszystkie węzły potomne?
Nov 19 2020
Zobacz ten minimalny przykład
.global :not(.guard) {
color: red;
}
<div class="global">
<p>I'm outside guard</p>
<div class="guard">
I'm inside guard.
<div>
<hr>
<p>
I'm a block inside guard.
</p>
<p>
I want to black color too.
</p>
<p>
How can I achieve it?
</p>
</div>
</div>
</div>
Mam taki styl (SCSS)
.global {
:not(.guard) {
color: red;
}
}
Chcę, aby nic wewnątrz węzła z .guard
kolorem nazwy klasy nie miało wpływucolor: red;
Jak mogę osiągnąć ten efekt?
Odpowiedzi
1 Rounin Nov 19 2020 at 10:07
Jeśli dobrze zrozumiałem efekt, który próbujesz osiągnąć, możesz zaimplementować go za pomocą następujących dwóch selektorów:
.global {
color: red;
}
.global .guard {
color: black;
}
W tym przypadku naprawdę nie potrzebujesz :not()
pseudo-selektora.
Przykład roboczy:
.global {
color: red;
}
.global .guard {
color: black;
}
<div class="global">
<p>I'm outside guard</p>
<div class="guard">
I'm inside guard.
<div>
<hr>
<p>
I'm a block inside guard.
</p>
<p>
I want to black color too.
</p>
<p>
How can I achieve it?
</p>
</div>
</div>
</div>