O que !important
significa em CSS?
Está disponível no CSS 2? CSS 3?
Onde é suportado? Todos os navegadores modernos?
O que !important
significa em CSS?
Está disponível no CSS 2? CSS 3?
Onde é suportado? Todos os navegadores modernos?
Respostas:
Significa, essencialmente, o que diz; que 'isso é importante, ignore as regras subseqüentes e quaisquer problemas de especificidade comuns, aplique esta regra!'
No uso normal, uma regra definida em uma folha de estilo externa é substituída por um estilo definido no head
documento, que, por sua vez, é substituído por um estilo em linha dentro do próprio elemento (assumindo a mesma especificidade dos seletores). Definir uma regra com o !important
'atributo' (?) Descarta as preocupações normais no que diz respeito à regra 'posterior' substituindo as 'anteriores'.
Além disso, normalmente, uma regra mais específica substituirá uma regra menos específica. Assim:
a {
/* css */
}
Normalmente é substituído por:
body div #elementID ul li a {
/* css */
}
Como o último seletor é mais específico (e normalmente não importa onde o seletor mais específico é encontrado (na head
folha de estilo ou na externa)), ele ainda substituirá o seletor menos específico (os atributos de estilo em linha sempre serão substitua o seletor específico 'more-' ou 'less-', pois é sempre mais específico.
Se, no entanto, você adicionar !important
à declaração CSS do seletor menos específico, ela terá prioridade.
O uso !important
tem seus propósitos (embora eu tenha dificuldade em pensar neles), mas é como usar uma explosão nuclear para impedir que as raposas matem suas galinhas; sim, as raposas serão mortas, mas as galinhas também. E a vizinhança.
Isso também torna a depuração do CSS um pesadelo (por experiência pessoal, empírica).
important!
(importante NOT)
A regra! Important é uma maneira de fazer com que seu CSS seja cascateado, mas também tenha sempre as regras que você considera mais cruciais. Uma regra que possua a propriedade! Important sempre será aplicada, independentemente de onde ela apareça no documento CSS.
Então, se você tem o seguinte:
.class {
color:red !important;
}
.outerClass .class {
color:blue;
}
a regra com o importante será a aplicada (sem contar a especificidade )
Eu acredito que !important
apareceu no CSS1, então todo navegador suporta (IE4 a IE6 com uma implementação parcial, IE7 + completo)
Além disso, é algo que você não deseja usar com bastante frequência, porque se estiver trabalhando com outras pessoas, poderá substituir outras propriedades.
!
um símbolo para NOT em alguns idiomas, mas agora está mais clara.
!important
. O CSS é diferente o suficiente de outras linguagens e é fácil esquecer como usar certas coisas.
important!
, ou talvez IMPORTANT!
, e não !important
. Gostaria de saber se alguém (que pode ler isso) sabe por que eles definiram com a pontuação na frente? Obviamente, é tarde demais para mudar isso agora.
!important
faz parte do CSS1.
Navegadores compatíveis: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
Significa algo como:
Use-me, se não houver mais nada importante por perto!
Não posso dizer melhor.
!important
não está limitado apenas ao Safari 3+; ele é suportado desde o início, como todos os outros navegadores que não são do IE. IE entende a partir da versão 4 para a frente, mas só suporta partida livre de bugs da versão 7.
É usado para influenciar a classificação na cascata CSS quando a classificação por origem é feita. Não tem nada a ver com especificidade, como indicado aqui em outras respostas.
Aqui está a prioridade do menor para o maior:
Depois que essa especificidade ocorre, as regras ainda têm um dedo na torta.
Referências:
!important
é um modificador para a ordem em cascata developer.mozilla.org/en-US/docs/Web/CSS/Cascade (consulte a tabela para referência).
Ele altera as regras para substituir a prioridade das cascatas de css. Veja a especificação CSS2 .