Calculateur de Spécificité CSS en Ligne. Visualiseur de Poids

Calculez la spécificité et le poids exact de n'importe quel sélecteur CSS. Outil visuel pour comprendre quelle règle CSS gagne la cascade et éviter l'utilisation de !important.

VS
Ce sélecteur gagne !
0 IDs
0 Classes / Pseudos
0 Éléments
Ce sélecteur gagne !
0 IDs
0 Classes / Pseudos
0 Éléments
Les deux sélecteurs ont le même poids. S'ils sont en compétition pour le même élément, celui écrit en dernier dans le CSS gagne.
Studio d'utilitaires

Voulez-vous cet outil sur votre site web ?

Personnalisez les couleurs y le mode sombre pour WordPress, Notion ou votre propre site.

Questions fréquemment posées

Qu'est-ce que la spécificité CSS ?

La spécificité est l'algorithme que les navigateurs utilisent pour décider quelle règle CSS s'applique à un élément quand plusieurs règles sont en compétition. Elle est représentée par un score à trois colonnes (A, B, C) indiquant les IDs, les classes/attributs/pseudo-classes et les éléments/pseudo-éléments.

Une classe peut-elle jamais battre un ID en spécificité ?

Pas directement. Un ID (1,0,0) bat toujours n'importe quel nombre de classes (0,N,0) car la spécificité n'a pas de retenue entre les colonnes. Cent classes (0,100,0) ne battront jamais un seul ID (1,0,0).

Que se passe-t-il quand deux sélecteurs ont la même spécificité ?

Quand deux sélecteurs ont exactement le même poids, celui déclaré en dernier dans le fichier CSS gagne. C'est ce qu'on appelle l'ordre naturel de la cascade. Cette calculatrice vous avertit visuellement quand une égalité se produit.

Pourquoi l'utilisation de !important est-elle considérée comme mauvaise pratique ?

La directive !important brise la cascade CSS naturelle en forçant une déclaration sur toute autre règle. Cela crée des conflits difficiles à déboguer dans les grands projets. Des méthodologies comme BEM préconisent de garder une spécificité plate pour éviter d'avoir besoin de !important.

# Qu'est-ce que la Spécificité CSS ?

La spécificité CSS est l'algorithme par lequel les navigateurs décident quelles valeurs de propriétés appliquer à un élément particulier. C'est essentiellement un score mathématique qui indique au navigateur "à quel point" une règle est spécifique.Si deux règles ont des niveaux de spécificité différents, celle avec le poids le plus élevé gagnera, quel que soit l'ordre dans lequel elles ont été écrites. Si les deux ont le même poids, la dernière déclarée dans le code source gagne.

# Comment calculer la Spécificité CSS

La spécificité est calculée sur trois catégories formant un poids à trois colonnes, exprimé comme (A, B, C) :
  • Colonne A (IDs) : Compte le nombre d'identifiants uniques. Exemple : #header compte comme 1 dans la colonne A.
  • Colonne B (Classes, Attributs et Pseudo-classes) : Compte toutes les classes (.button), attributs ([type="text"]) et pseudo-classes (:hover).
  • Colonne C (Éléments et Pseudo-éléments) : Compte tous les éléments HTML (div, h1) et pseudo-éléments (::before).

# La règle d'or: pas de report numérique

Une règle avec la spécificité (0,50,0) ne sera jamais plus spécifique qu'une règle (1,0,0). Un seul ID bat infiniment de classes. Les colonnes ne se déversent jamais les unes dans les autres.

# Le problème de !important et l'architecture BEM

La directive !important est une exception aux règles de spécificité. Quand elle est utilisée, cette déclaration écrase automatiquement toute autre. Elle est considérée comme une mauvaise pratique car elle détruit la cascade naturelle.Pour éviter les guerres de spécificité dans les grands projets, des méthodologies comme BEM préconisent d'utiliser uniquement des sélecteurs de classe à un seul niveau de profondeur, maintenant artificiellement la spécificité plate à (0,1,0).

Références Bibliographiques