Calculadora de Especificidade CSS
Cole seletores CSS e veja instantaneamente suas pontuações de especificidade lado a lado. Entenda quais regras vencem e por quê — classificadas por peso.
Seletores CSS
Exemplos Rápidos
Resultados de Especificidade
A especificidade é calculada como (a, b, c)
Digite seletores CSS acima para ver suas pontuações de especificidade.
a
IDs
#id
b
Classes / Atributos / Pseudo-classes
.class [attr] :hover
c
Elementos / Pseudo-elementos
div p ::before
Ferramentas Relacionadas
Sobre a Calculadora de Especificidade CSS
Como Funciona
- Digite um ou mais seletores CSS, um por linha, na área de entrada
- A ferramenta analisa cada seletor e conta IDs, classes/atributos/pseudo-classes e elementos
- A especificidade é exibida como uma pontuação de três partes: (a, b, c)
- Os seletores são automaticamente classificados da maior para a menor especificidade
- Clique em "Copiar Resultados" para copiar a tabela completa de especificidade para a área de transferência
- Use a comparação para entender quais seletores substituirão outros
Casos de Uso Comuns
- Depurar problemas de substituição CSS comparando pesos de seletores
- Aprender as regras de especificidade CSS de forma interativa
- Revisar seletores antes de adicionar novos estilos a uma folha de estilos
- Ensinar especificidade CSS a desenvolvedores ou estudantes
- Otimizar a especificidade de seletores para reduzir a necessidade de !important
- Verificar rapidamente qual regra vence quando os estilos entram em conflito
Perguntas Frequentes
O que é especificidade CSS?
A especificidade CSS é um peso atribuído a um seletor CSS que determina qual regra de estilo é aplicada quando múltiplas regras correspondem ao mesmo elemento. É representada como um valor de três partes (a, b, c) onde a conta seletores de ID, b conta seletores de classe/atributo/pseudo-classe e c conta seletores de tipo de elemento e pseudo-elementos.
Como a especificidade é calculada?
A especificidade é calculada contando três categorias em um seletor: (a) seletores de ID como #header, (b) seletores de classe (.card), de atributo ([type="text"]) e pseudo-classes (:hover, :nth-child), e (c) seletores de tipo (div, p) e pseudo-elementos (::before). O seletor universal (*) e combinadores (+, ~, >) não têm especificidade.
Qual seletor vence quando duas regras entram em conflito?
O seletor com maior especificidade vence. Compare os valores (a, b, c) da esquerda para a direita: mais IDs (a) sempre supera mais classes (b), e mais classes sempre superam mais elementos (c). Se a especificidade for igual, a regra que aparece por último na folha de estilos vence.
Para que serve a pontuação de especificidade nesta ferramenta?
A pontuação numérica é um valor comparável simplificado (a * 10000 + b * 100 + c) para classificar seletores. Não deve ser interpretada como um valor CSS literal — a especificidade CSS não é um número único, mas uma comparação de três partes.
O !important afeta a especificidade?
O !important não faz parte da especificidade — ele substitui todas as outras declarações independentemente da especificidade. Esta ferramenta calcula apenas a especificidade do seletor, não o efeito do !important. Evite usar !important no CSS de produção.
O seletor universal (*) tem especificidade?
Não. O seletor universal (*) tem especificidade zero (0, 0, 0). Combinadores (+, >, ~, espaço) também não contribuem para a especificidade. Apenas seletores de ID, classe, atributo, pseudo-classe, elemento e pseudo-elemento aumentam a especificidade.
Como :not() afeta a especificidade?
A pseudo-classe :not() em si não tem especificidade, mas o seletor dentro dela tem. Por exemplo, :not(#id) contribui com (1, 0, 0) para a especificidade (um ID). Esta ferramenta considera :not() corretamente analisando o argumento dentro dos parênteses.
Qual a diferença entre :: e : para pseudo-elementos?
:: é a sintaxe moderna de dois pontos duplos para pseudo-elementos (::before, ::after, ::placeholder). A sintaxe legada de um único ponto (:before, :after) ainda é suportada pelos navegadores, mas está obsoleta. Ambas adicionam 1 à contagem c (elemento/pseudo-elemento).
Como os estilos inline se comparam com os seletores?
Estilos inline (ex.: style="color: red") têm especificidade (1, 0, 0, 0) — maior que qualquer seletor — representada como uma quarta categoria não coberta por esta ferramenta. Na prática, estilos inline sempre substituem regras da folha de estilos (a menos que !important seja usado).
Posso comparar seletores com a mesma pontuação de especificidade?
Sim. Quando dois seletores têm os mesmos valores (a, b, c), o que aparece por último na ordem do fonte vence. Esta ferramenta os exibe com o mesmo rank quando têm pontuações idênticas, e você pode verificar o detalhamento (a, b, c) para confirmar que são equivalentes em peso.
Por que devo minimizar a especificidade no meu CSS?
Alta especificidade torna os estilos mais difíceis de substituir e manter. Para substituir um estilo, você precisa escrever um seletor ainda mais específico ou usar !important. Manter a especificidade baixa torna o CSS mais modular e previsível, especialmente em grandes codebases.
Esta ferramenta suporta todos os tipos de seletores CSS?
Esta ferramenta suporta os seletores CSS3 mais comuns, incluindo IDs, classes, atributos, pseudo-classes (incluindo :not()), pseudo-elementos e seletores de tipo. Seletores modernos complexos como :is(), :where(), :has() podem não ser totalmente analisados.