Hoppa till innehåll
100% lokalt

CSS-specificitetsräknare

Beräkna specificiteten för CSS-väljare och se vilken som vinner.

Inmatning
Utmatning

CSS-specificitetsräknare

Ange en eller flera CSS-väljare, en per rad, och detta verktyg beräknar specificiteten för varje väljare som en standard tredeltad poäng: ID:n, klasser (plus attribut och pseudo-klasser) och element (plus pseudo-element). Specificitet avgör vilken konfliktande regel en webbläsare tillämpar. Det är användbart när två stilregler riktar sig till samma element och du vill veta vilken som vinner, eller när du felsöker varför en åsidosättning inte fungerar.

Aktivera Dela kommaseparerade listor för att poängsätta varje väljare i en lista som ".a, .b" på sin egen rad istället för att kombinera dem. Sortera efter starkaste först ordnar om resultaten från högsta till lägsta specificitet. Välj Tabell för en kolumnlayout med utdelade ID:n, klasser och element, eller 0-1-2-notation för en kompakt poäng som "1-0-2" per väljare. Visa fördelningsförklaring listar vilken del av varje väljare — ett ID, en klass, ett element — bidrog till poängen. Detta är det snabbaste sättet att se exakt varför en regel överglänser en annan.

Räknaren följer CSS Selectors-specifikationen för knepiga fall: :where() poängsätts alltid till noll oavsett vad som finns inuti den, medan :is(), :not() och :has() tar specificiteten för sitt mest specifika argument. En väljare som innehåller !important flaggas, eftersom den åsidosätter den normala kaskaden oavsett specificitet. Windows- och Unix-radavslut behandlas på samma sätt, och tomma rader ignoreras.

Allt körs lokalt i din webbläsare — väljarna du klistrar in laddas aldrig upp någonstans. Det är viktigt när du kontrollerar mot en privat kodbas. Kopiera resultatet, ladda ned det som en .txt-fil, eller skicka utmatningen tillbaka till inmatningen för att fortsätta att förfina dina väljare.

FAQ

Vad betyder 0-1-2-notationen?
Varje siffra är en specificitätnivå: den första räknar ID-väljare, den andra räknar klasser, attribut och pseudo-klasser, och den tredje räknar element- och pseudo-element-väljare. En väljare med ett högre första tal överglänser alltid ett med bara ett högre andra eller tredje tal.
Hur poängsätts :not(), :is() och :has()?
Dessa pseudo-klasser antar specificiteten för den mest specifika väljaren inom sina parenteser — :not(.a, #b) poängsätts lika högt som #b — snarare än att lägga till vikt på egen hand. :where() är undantaget: det poängsätts alltid till noll, oavsett hur komplex väljarlistan inom det är.
Påverkar !important specificitetspoängen?
Nej. !important åsidosätter den normala kaskaden oavsett specificitet, så det ändrar inte en väljares poäng. Verktyget flaggar väljare som innehåller det som en separat notering, eftersom det lätt kan överskuggas när man jämför regler.
Vad händer med en kommaseparerad lista som ".a, .b"?
Med Dela kommaseparerade listor aktiverat poängsätts varje väljare i listan på sin egen rad, vilket motsvarar hur en webbläsare faktiskt utvärderar dem. Inaktivera alternativet för att poängsätta hela raden som en kombinerad väljare istället.
Laddas min CSS upp någonstans?
Nej. Specificitet beräknas helt i din webbläsare — väljarna du klistrar in lämnar aldrig din enhet.