Calculadora de Especificidade CSS Online. Visualizador de Peso de Seletores

Calcule a especificidade e o peso exato de qualquer seletor CSS. Ferramenta visual para entender qual regra CSS vence a cascata e evitar o uso de !important.

VS
Este seletor vence!
0 IDs
0 Classes / Pseudos
0 Elementos
Este seletor vence!
0 IDs
0 Classes / Pseudos
0 Elementos
Ambos os seletores têm o mesmo peso. Se competirem pelo mesmo elemento, vence o que estiver escrito por último no CSS.
Estúdio de Utilitários

Quer este utilitário no seu site?

Personalize cores e o modo escuro para WordPress, Notion ou o seu próprio site.

Perguntas frequentes

O que é especificidade CSS?

A especificidade é o algoritmo que os browsers usam para decidir qual regra CSS aplicar a um elemento quando várias regras competem entre si. É representada como uma pontuação de três colunas (A, B, C) que indica, respetivamente, IDs, classes/atributos/pseudo-classes e elementos/pseudo-elementos.

Uma classe pode alguma vez superar um ID em especificidade?

Não diretamente. Um ID (1,0,0) bate sempre qualquer número de classes (0,N,0), porque a especificidade não tem transporte numérico entre colunas. Cem classes (0,100,0) nunca vão superar um único ID (1,0,0).

O que acontece quando dois seletores têm a mesma especificidade?

Quando dois seletores têm exatamente o mesmo peso, vence aquele que foi declarado por último no ficheiro CSS. A isso chama-se a ordem natural da cascata. Esta calculadora avisa-te visualmente quando ocorre um empate.

Por que usar !important é considerado má prática?

A diretiva !important quebra a cascata CSS natural ao forçar uma declaração sobre qualquer outra regra. Isso cria conflitos difíceis de depurar em projetos grandes. Metodologias como o BEM defendem manter a especificidade plana para nunca precisar de !important.

# O que é a Especificidade CSS?

A especificidade CSS é o algoritmo pelo qual os browsers decidem que valores de propriedades aplicar a um determinado elemento. É essencialmente uma pontuação matemática que diz ao browser "quão específica" é uma regra.Se duas regras têm níveis de especificidade diferentes, vence a que tiver maior peso, independentemente da ordem em que foram escritas. Se tiverem o mesmo peso, vence a última declarada no código fonte.

# Como calcular a especificidade CSS

A especificidade calcula-se com base em três categorias que formam um peso de três colunas, normalmente expresso como (A, B, C):
  • Coluna A (IDs): Conta o número de identificadores únicos. Exemplo: #header conta como 1 na coluna A.
  • Coluna B (Classes, Atributos e Pseudo-classes): Conta todas as classes (.button), atributos ([type="text"]) e pseudo-classes (:hover).
  • Coluna C (Elementos e Pseudo-elementos): Conta todos os elementos HTML (div, h1) e pseudo-elementos (::before).

# A regra de ouro: sem transporte numérico

Uma regra com especificidade (0,50,0) nunca será mais específica do que uma regra (1,0,0). Um único ID bate infinitas classes. As colunas nunca transbordam umas para as outras.

# O problema do !important e a arquitetura BEM

A diretiva !important é uma exceção às regras de especificidade. Quando usada, essa declaração sobrescreve automaticamente qualquer outra. Considera-se má prática porque destrói a cascata natural.Para evitar guerras de especificidade em projetos grandes, metodologias como o BEM defendem o uso exclusivo de seletores de classe com um único nível de profundidade, mantendo artificialmente a especificidade plana em (0,1,0).

Referências Bibliográficas