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 headdocumento, 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 headfolha 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 !importanttem 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).
Também é confuso para muitos desenvolvedores, pois em muitas linguagens de programação o prefixo! significa que não .
Rustyx
19
Uma finalidade para! Important seria em um script GreaseMonkey, no qual você substitui propositalmente o CSS de outras pessoas que provavelmente é mais específico que o seu.
pelo menos não é sarcástico e diz important!(importante NOT)
user3553260
2
Você escreveu: 'No uso normal, uma regra definida em uma folha de estilo externa é substituída por um estilo definido no cabeçalho do documento'. Está errado.
Jlguenego #
130
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.
a regra com o importante será a aplicada (sem contar a especificidade )
Eu acredito que !importantapareceu 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.
A confusão acontece como !um símbolo para NOT em alguns idiomas, mas agora está mais clara.
Si8
2
Estou especialmente feliz por você ter incluído a sintaxe para uso !important. O CSS é diferente o suficiente de outras linguagens e é fácil esquecer como usar certas coisas.
blainarmstrong
3
@ Si8 - Sim, por causa dessa confusão, eu sempre pensei que "eles" deveriam tê-lo definido como 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.
!importantnã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.
BoltClock
12
É 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:
estilos de navegador
declarações de folha de estilo do usuário (sem! importante)
declarações da folha de estilos dos autores (sem! important)
folhas de estilo importantes do autor
! folhas de estilo importantes para o usuário
Depois que essa especificidade ocorre, as regras ainda têm um dedo na torta.
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:
Normalmente é substituído por:
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).
fonte
important!
(importante NOT)Então, se você tem o seguinte:
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.
fonte
!
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 talvezIMPORTANT!
, 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.
fonte
!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:
fonte
!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 .
fonte