Calcolatore di Specificità CSS Online. Visualizzatore di Peso del Selettore

Calcola la specificità e il peso esatto di qualsiasi selettore CSS. Strumento visivo per capire quale regola CSS prevale nella cascata ed evitare di ricorrere a !important.

VS
Questo selettore vince!
0 ID
0 Classi / Pseudo
0 Elementi
Questo selettore vince!
0 ID
0 Classi / Pseudo
0 Elementi
Entrambi i selettori hanno lo stesso peso. Se competono per lo stesso elemento, vince quello scritto per ultimo nel CSS.
Studio Strumenti

Vuoi questo strumento sul tuo sito?

Personalizza i colori e la modalità scura per WordPress, Notion o il tuo sito.

Domande frequenti

Cos'è la specificità CSS?

La specificità è l'algoritmo che i browser usano per decidere quale regola CSS applicare a un elemento quando più regole sono in competizione. Viene rappresentata come un punteggio a tre colonne (A, B, C) che indica rispettivamente ID, classi/attributi/pseudo-classi ed elementi/pseudo-elementi.

Una classe può mai battere un ID in specificità?

No, non direttamente. Un ID (1,0,0) batte sempre qualsiasi numero di classi (0,N,0) perché la specificità non ha riporto numerico tra le colonne. Cento classi (0,100,0) non supereranno mai un singolo ID (1,0,0).

Cosa succede quando due selettori hanno la stessa specificità?

Quando due selettori hanno esattamente lo stesso peso, vince quello dichiarato per ultimo nel file CSS. Questo è noto come ordine naturale della cascata. Questo calcolatore ti avvisa visivamente quando si verifica un pareggio.

Perché usare !important è considerato una cattiva pratica?

La direttiva !important interrompe la cascata CSS naturale forzando una dichiarazione su qualsiasi altra regola. Questo crea conflitti difficili da risolvere nei progetti grandi. Metodologie come BEM promuovono una specificità piatta per evitare di dover ricorrere a !important.

# Cos'è la Specificità CSS?

La specificità CSS è l'algoritmo con cui i browser decidono quali valori di proprietà applicare a un determinato elemento. È essenzialmente un punteggio matematico che indica al browser "quanto specifica" sia una regola.Se due regole hanno livelli di specificità diversi, vince quella con peso maggiore, indipendentemente dall'ordine in cui sono state scritte. Se entrambe hanno lo stesso peso, vince l'ultima dichiarata nel codice sorgente.

# Come si calcola la specificità CSS

La specificità si calcola in base a tre categorie che formano un peso a tre colonne, spesso espresso come (A, B, C):
  • Colonna A (ID): Conta il numero di identificatori univoci. Esempio: #header vale 1 nella colonna A.
  • Colonna B (Classi, Attributi e Pseudo-classi): Conta tutte le classi (.button), gli attributi ([type="text"]) e le pseudo-classi (:hover).
  • Colonna C (Elementi e Pseudo-elementi): Conta tutti gli elementi HTML (div, h1) e i pseudo-elementi (::before).

# La regola d'oro: nessun riporto numerico

Una regola con specificità (0,50,0) non sarà mai più specifica di una regola (1,0,0). Un singolo ID batte infinite classi. Le colonne non traboccano mai l'una nell'altra.

# Il problema di !important e l'architettura BEM

La direttiva !important è un'eccezione alle regole di specificità. Quando viene usata, quella dichiarazione sovrascrive automaticamente qualsiasi altra. È considerata una cattiva pratica perché distrugge la cascata naturale.Per evitare guerre di specificità nei progetti grandi, metodologie come BEM promuovono l'uso esclusivo di selettori di classe a un solo livello di profondità, mantenendo artificialmente la specificità piatta a (0,1,0).

Riferimenti Bibliografici