Existem diferentes maneiras de substituir as propriedades. Supondo que você tenha
.left { background: blue }
por exemplo, qualquer um dos seguintes o substituiria:
a.background-none { background: none; }
body .background-none { background: none; }
.background-none { background: none !important; }
Os dois primeiros “ganham” por especificidade do seletor; o terceiro vence por !important
, um instrumento contundente.
Você também pode organizar suas folhas de estilo para que, por exemplo, a regra
.background-none { background: none; }
ganha simplesmente por ordem, ou seja, por estar atrás de uma regra igualmente “poderosa”. Mas isso impõe restrições e exige que você seja cuidadoso em qualquer reorganização de folhas de estilo.
Todos esses são exemplos do CSS Cascade , um conceito crucial, mas amplamente mal compreendido. Ele define as regras exatas para resolver conflitos entre as regras da folha de estilo.
PS Eu usei left
e background-none
como eles foram usados na pergunta. Eles são exemplos de nomes de classes que não devem ser usados, pois refletem renderizações específicas e não funções estruturais ou semânticas.
left
e devebackground-none
ser evitado?