I am adding a fiddle below that gives a visual on the matter I'm dealing with. While messing around with css selectors I've realized that the !important selector is very strong, until it meets its boss the :not selector.
div:not(.red){
background-color:green !important;
width:400px;
height:50px
}
In my fiddle I declared an initial value of purple to all my backgrounds. I ordered the first one specifically to be red and the second one to be blue I then ordered all my backgrounds except red to be green. It did so!
Good so far
then I made a brown, and the another brown with a change of color to purple important. It changed both brown classes.
The confusing came about these two browns not turning green when I specifically demanded that all except red must be green! I said to myself, "the important selector sure it's strong!" Then I added an !important selector to my :not selector class for good measure. Given that the purple Important class is the bottom-est class, it will overwrite the Important on the Green and remain purple....OOOOHHHHH NOOOOOO!!!! They all (except red) turned GREEN!
What gives?
What is the true hierarchy and chain of command on css selectors?
Here is the FIDDLE