Declaração CSS com !important
Publicado em: 2006-08-18 — 139.011 visualizacoes
Uma das diretrizes das CSS que decide qual a regra de estilo que deve ser aplicada em caso de conflito entre duas ou mais regras chama-se “efeito cascata”.
Se você, ao escrever sua folha de estilo declarar na segunda linha do arquivo uma regra assim:
Linha 2 – p {font-size:14px;}
a seguir continuar escrevendo outras regras e lá embaixo na trigésima linha escrever:
Linha 30 – p {font-size:12px;}
cria um conflito entre duas regras para o tamanho da fonte nos parágrafos.
Aí eu pergunto:
Qual será o tamanho da fonte nos parágrafos do documento?
Resposta: 12px. Por que?
Porque uma (existem várias) das diretrizes do efeito cascata estabelece que a regra de estilo escrita depois (ou posteriormente) no fluxo da folha de estilos, prevalece sobre aquelas escritas anteriormente. É isto o que acontece no exemplo acima, a regra escrita na trigésima linha prevalece sobre a anterior, escrita na segunda linha. Quer saber mais sobre efeito cascata? Leia: O efeito cascata e saiba também o que é especificidade para o efeito cascata
Toda esta introdução e exemplificação mostrada acima para dizer que uma declaração CSS com !important assume a prioridade mais alta na ordem da cascata e só perde para outra declaração com !important mais específica.
Suponha que no exemplo anterior tenha sido alterada a regra escrita na linha 2 conforme mostrado a seguir:
Linha 2 – p {font-size:14px !important;}
…
Linha 30 – p {font-size:12px;}
Agora o tamanho da fonte nos parágrafos será 14px, pois a declaração que contém !important assume a prioridade, ‘quebrando’ o efeito cascata.
Notar que !important deve ser escrito logo após o valor da propriedade na declaração CSS (propriedade: valor), com ou sem espaço, (aconselho a deixar um espaço para maior legibilidade) e antes do ponto e vígula que termina a declaração.
Atenção: Ressalto que !important só perde para outra !important mais específica.
Assim, uma regra de estilo contida em uma folha de estilos externa e cuja declaração seja com !important, prevalece inclusive sobre um estilo inline (aquele declarado dentro da tag HTML com o atributo style)
Agora vem a pergunta natural: Mas afinal para que serve !important.? Basta eu escrever minhas regras de estilo de acordo com o efeito cascata e estarei tranqüilo.
Você cedo ou tarde, à medida que se aprofundar em projetos CSS vai descobrir por si só ‘para que serve’, contudo desde já adianto duas situações típicas:
É empregado por questões de acessibilidade, por usuários que escrevem folhas de estilos para navegar de acordo com suas necessidades especiais.
É empregado em folhas de estilo para mídias alternativas com a finalidade de sobrescrever regras de estilo de grande especificidade contidas em folhas de estilos gerais.
Eu costumo usar para “debugar” folhas de estilo muito longas quando ao criar uma regra CSS simples ela não funciona. Acresento !important, se funcionar é um indício que existe uma regra de maior especificidade do que a que eu acabo de escrever.
Agora é com você. Faça algumas experiências e comprove na prática como funciona uma declaração de estilo com !important.
Desenvolvimento com Padrões Web? Adquira os livros do Maujor
Visite o site dos livros.
Esta matéria foi publicada em: 2006-08-18 (sexta-feira). Subscreva o feed RSS 2.0 para comentários.
Comente abaixo, ou link para http://www.maujor.com/blog/2006/08/18/declaracao-com-important/trackback no seu site.
Romario sena eu gostaria de saber se possível sobre html 5 tratamento css e como aplicar banco dados na linguagens em que se atuais de hoje são exemplos de eficiência alguns blog linguagens ex.wordpres fontes exemplo sobre o que pode fazer em navegadores 1que não são atualizados https://sonhosdeumprofessordeeducacaofisica.wordpress.com/tag/e-e-sinha-andrade/
Parabéns!!! Bem explicado! 😉
Essa explicação foi extremamente eficiente e objetiva…
Obrigado!!!
Ótima esplicação.
Uma das alternativas pra colocar banners jQuery na pagina, e arrumar a bagunça que ele faz
[…] as personalizações de cores, fundo de uma forma mais prática ( não esqueça de utilizar a declaração important para que as alterações sejam válidas […]
Mew, eu agora no inicio de 2013, vendo comentários de 2006. Que loucura. hehehe.
Ótimo post, claro, inciso e objetivo.
Parabéns!!
😉
Muito bom Maujor.
abraços!
ótimo, acabei de descobrir na p´ratica e vim pesquisar sobre pra que servia exatamente, muito bom! e muito {!important;} essa peculiaridade da regra! 😀
Muito bom!!
Me ajudou bastante
Uso para especificar regras das quais quero que sejam renderizadas primeiro pelo navegador. Geralmente uso quando quero que a borda ou cor de fundo de um box apareça primeiro durante o carregamento do site.
Ta aih o mestre do CSS. vlw pela dica maujor
Salvaste a minha vida, não conseguia fazer uma alteração de jeito nenhum e isso me ajudou mt.
Gostei muito do tutorial, me ajudou numa dúvida que eu tinha, o que mais gostei foi da forma de ensino e apresentação.
Continue assim! todos vão ganhar, conhecimento compartilhado!
otimo artigo! obrigada pela dica! 😉
é possivel sobreescrever uma regra de estilo inline por uma regra vinda de uma folha externa utlizando !important ??
Como sempre uma solução para minhas dúvidas. Valeu mestre. 🙂
O blog tá fodástico!
muito bom
[…] Bem não vou entrar em detalhes sobre esta declaração para que o post não fique muito extenso e também há bastante conteúdo sobre o assunto, talvez no próximo post comento um pouco sobre isto. Mas vou deixar o link do blog do maujor pra quem quiser entender melhor esta declaração. […]
[…] origem: http://www.maujor.com/blog/2006/08/18/declaracao-com-important […]
Muito bom artigo maujor!
Valeu Maujor… já tinha te mandado um e-mail pedido esse esclarecimento… valeu mesmo!
Usar
!important
como hack para o IE não é uma escolha usual!Prefira:
body>p
ou
* html p
.Eu uso como hack válido pois o I.E ignora as declarações com !important.
Exemplo:
p {
font-size:14px !important; /* Firefox, Opera etc… */
font-size:12px; /* I.E */
}
Muito bom o tuto!!! Abraços!!!
Que legal, me perguntei sobre isso na terça quando ao pesquisar a solução para um problema encontrado por mim aqui, me vi de frente com um !important.
E concordo com o Carlos, é sempre importante destacar a hierarquia existente nas folhas de estilos.
Abraços!!
Muito bom esse artigo!
Ontem mesmo me defrontei com essa situação, coloquei um estilo para o menu, por exemplo, assim:
#menu ul li a:hover {
color: #fff;
background: #003B6E;
}
aí depois fui colocar uma regra geral para os links:
a {
color: #666;
}
e todos os links do site obedeceram o seletor a !
Não entendi o porque…
Agora com o seu artigo, vou procurar ler mais sobre o assunto.
Muito obrigada!
É de grande valia seu empenho de instruir, ainda mais para nós iniciantes!
Att,
Areta do Bem
Ótimo artigo!
Saber como a “hierarquia” funciona no CSS é muito importante para evitar dores-de-cabeça posteriores.