I don't understand why :not() selector behave like this... What I'm trying is to select a class, that doesn't have as children another class, however, I'm facing a problem that I dont understand this:
.a :not(.b){ color: red;}
.b{ color: green;}
<div class='a'>
dasdsa
<div class='b'>
dsadas
<div class='a'>
dsadasdas
<div class='b'>
dsadadasd
</div>
</div>
</div>
</div>
https://jsfiddle.net/dg4f4agh/1/
When I'm using the ">" operator it's behaving as I espect...
.a>:not(.b){ color: red;}
.b{ color: green;}
<div class='a'>
dasdsa
<div class='b'>
dsadas
<div class='a'>
dsadasdas
<div class='b'>
dsadadasd
</div>
</div>
</div>
</div>
https://jsfiddle.net/dg4f4agh/2/
Can someone explain me why the first exemple isn't working, and how I can do what I want to accomplish?