Istnieje kilka sposobów nadpisywania właściwości. Zakładając, że masz
.left { background: blue }
np. którekolwiek z poniższych mogłoby go zastąpić:
a.background-none { background: none; }
body .background-none { background: none; }
.background-none { background: none !important; }
Pierwsze dwa „wygrywają” dzięki specyficzności selektora; trzeci wygrywa !important
, tępy instrument.
Możesz również zorganizować swoje arkusze stylów tak, aby np
.background-none { background: none; }
wygrywa po prostu porządku, czyli będąc po skądinąd jednakowo „potężnego” reguły. Ale to nakłada ograniczenia i wymaga zachowania ostrożności przy każdej reorganizacji arkuszy stylów.
To wszystko przykłady CSS Cascade , kluczowej, ale powszechnie niezrozumianej koncepcji. Definiuje dokładne zasady rozwiązywania konfliktów między regułami arkusza stylów.
PS użyłem left
i background-none
tak jak zostały użyte w pytaniu. Są to przykłady nazw klas, których nie należy używać, ponieważ odzwierciedlają one określone renderowanie, a nie role strukturalne lub semantyczne.
left
ibackground-none
należy tego unikać?