Blog do Maujor - Tutoriais e pensamentos, CSS, web standards, acessibilidade, tableless


Declaração CSS com !important

Publicado em: 2006-08-18 — 8,395 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.

1 Star2 Stars3 Stars4 Stars5 Stars (Post ainda não avaliado)
Loading ... Loading ...

----------------x-x-x---------------    fim da matéria    ---------------x-x-x---------------

Construindo sites com CSS e (X)HTML

Esta matéria foi publicada em: 2006-08-18 (Friday). 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.



12 comentários na matéria: “Declaração CSS com !important”

  1. Carlos Eduardo disse:

    Ótimo artigo!

    Saber como a “hierarquia” funciona no CSS é muito importante para evitar dores-de-cabeça posteriores.

  2. Areta do Bem disse:

    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

  3. Felipe Ranieri disse:

    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!!

  4. Pedro Rogério disse:

    Muito bom o tuto!!! Abraços!!!

  5. Fernando Prado disse:

    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 */
    }

  6. Márcio disse:

    Usar !important como hack para o IE não é uma escolha usual!
    Prefira:
    body>p
    ou
    * html p.

  7. Joares disse:

    Valeu Maujor… já tinha te mandado um e-mail pedido esse esclarecimento… valeu mesmo!

  8. Lucas Alves disse:

    Muito bom artigo maujor!

  9. Farley Rangel » !important disse:

    […] origem: http://www.maujor.com/blog/2006/08/18/declaracao-com-important […]

  10. Min-height, hack rápido e fácil « W3Standards - Normas para World Wide Web disse:

    […] 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. […]

  11. Carlos disse:

    muito bom

  12. Luã Stradlin disse:

    O blog tá fodástico!

Comentário:






Subscrição de comentários sem comentar

Teclar "Enter" cria um novo parágrafo. Teclar "Shift + Enter" causa uma quebra de linha.

Voltar ao topo

PR Tool


ir topo