terça-feira, dezembro 11, 2007

Alterar a prioridade dos estilos do HTML

Existem 4 modos de definir o estilo num elemento HTML:

1) Os browsers já têm estilos por omissão;
2) Ficheiros CSS externos;
3) Dentro da tag de head definir uma região de estilo;
4) Inline no próprio elemento.

No caso de haver sobreposição de regras, a que tem mais prioridade é a 4), seguindo até à 1) que é a que tem menor prioritária. Mas pode-se querer alterar a prioridade por algum motivo, imagine-se que se quer que a regra aplicada ao nível da CSS se sobreponha à regra definida inline.

Regra inline: <h1 style="font-size:12px;">Texto de Teste</h1>

Regra CSS: h1{ font-size: 50px !important; }

O facto de colocar !important faz com que a regra ao nível do CSS se torne mais prioritária. Como última nota há a referir que este mecanismo não é suportado pelo antiga versão CSS1.

2 comentários:

  1. Não esquecer a especificidade das regras CSS:
    http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html


    Um post deste tamanho só para divulgar o !important? :-\

    Bom, para além do que falaste, alguns user-agents permitem ao utilizador escolher folhas de estilo de utilizador...
    http://www.w3.org/TR/CSS-access#UserControl

    ResponderEliminar
  2. Ok tens razão o post é um pouco grande até para o meu estilo, que gosto de posts curtos! :D
    Só queria dar um pouco de contexto a tudo antes de dizer !important e pronto.

    ResponderEliminar