Implications et bonnes pratiques
Imaginons que l’on souhaite que le sélecteur .special
prenne le pas sur le sélecteur #attention
. Ce dernier a une spécificité dix fois supérieure. On pourrait créer un sélecteur #exemple.special
, mais l’on ne ferait que déplacer le problème (que se passe-t-il si l’on veut encore outrepasser ce sélecteur ?), et il faudrait de plus pour chaque id pouvant empêcher le jeu de règles associé au sélecteur id
de s’appliquer.
<button id="attention" class="special">OK</button>
/* spécificité = 100 */
#attention {
color: red;
}
/* spécificité = 10 */
.special {
color: purple;
}
/* le sélecteur .color n'est pas assez prioritaire,
on se retrouve à devoir faire ce qui suit */
/* spécificité = 110 */
#attention.special {
color: green;
}
Ces problèmes font qu’il est déconseillé d’utiliser le sélecteur d’id et de lui préférer le sélecteur de classe non qualifié et sans combinateur [1].