Verificatore CSS Rendering Reale della Regola VincenteUsare il motore del browser per verificare quale regola CSS vince
Perché serve davvero il rendering, e non solo il calcolo?
La maggior parte dei calcolatori di specificità CSS online si limita a inserire il selettore in una formula e a restituire un punteggio — ad esempio, #main p ottiene (1,0,1) e .card.active ottiene (0,2,0). Ma ciò che un browser reale decide quando più regole entrano in conflitto dipende anche dall'eredità, dall'ordine della cascata, da !important e da come ogni proprietà è scritta in regole diverse — tutti elementi che i calcolatori teorici ignorano. Questo strumento adotta un approccio diverso: renderizza l'HTML e il CSS che hai incollato all'interno di un iframe nascosto, così il browser applica realmente gli stili, e poi legge il risultato vero con getComputedStyle(). Quello che vedi è ciò che il browser ha davvero deciso, non un numero calcolato sulla carta.
Come si confronta davvero il punteggio (a, b, c) — un esempio pratico
La specificità CSS si scrive come tre numeri (a, b, c): a conta i selettori ID, b conta i selettori di classe/attributo/pseudo-classe, c conta i selettori di tipo/pseudo-elemento. Il confronto funziona come un confronto di cifre — chi ha il valore 'a' più alto vince direttamente, e si passa a confrontare 'b' solo se 'a' è in pareggio. Ad esempio, #main p ottiene (1,0,1) mentre .card .title.active ottiene (0,3,0) — #main p vince comunque perché 1 > 0 su 'a', anche se l'altro selettore accumula tre classi. Se due regole hanno esattamente la stessa specificità, il browser applica quella definita più tardi nel CSS — per questo anche l'ordine nel codice sorgente conta. !important è l'unica cosa che annulla completamente la specificità: una regola con specificità inferiore ma con !important batte una regola con specificità superiore che non lo ha (a meno che anche l'altra regola non abbia !important, nel qual caso decide di nuovo la specificità).
Quando dovresti davvero usare questo strumento?
Il caso classico è: 'ho scritto questa regola CSS e sullo schermo non è cambiato nulla' — il che di solito significa che un'altra regola con specificità più alta (o !important) la sta sovrascrivendo. Incolla l'HTML+CSS in conflitto, inserisci il selettore dell'elemento che stai analizzando, e lo strumento elencherà tutte le regole corrispondenti con il loro punteggio di specificità, lasciando che sia il vero motore del browser a dirti quale vince realmente — niente più supposizioni su quale livello della cascata stia prevalendo.
Questo strumento effettua il rendering all'interno di un iframe isolato, senza font, immagini o esecuzione di JavaScript esterni, e non supporta Shadow DOM né stili CSS-in-JS iniettati dinamicamente — incolla frammenti statici di HTML/CSS per ottenere risultati accurati.
Potresti aver bisogno anche di