« Le langage CSS/Structure et syntaxe » : différence entre les versions

→‎Ordre des spécificités des règles : + précision sur le calcul de priorité, - erreur classique sur !important dans IE (cf page de discussion)
(→‎Ordre des spécificités des règles : + précision sur le calcul de priorité, - erreur classique sur !important dans IE (cf page de discussion))
Il est évident dans l'exemple précédent que les titres du menu ne doivent pas être traités comme les autres titres. Aussi, plus le sélecteur d'élément est en quelque sorte ''précis'' dans sa cible, plus sa priorité est importante. La précision du sélecteur est appelé ''spécificité'' dans le jargon CSS. L'ordre des spécificités est le suivant, de la moins prioritaire à la plus prioritaire :
 
# élément Html, par exemple « <tt>h1 {color: black}</tt> » (vaut 1 point de priorité).
# imbrication d'éléments, par exemple « <tt>div h1 {color: black}</tt> » (vaut 2 points de priorité, un par élément présent dans le sélecteur)
# utilisation d'une classe, par exemple « <tt>h1.noir {color: black}</tt> » (vaut 11 points de priorité: 1 pour l'élément, 10 pour la classe)
# utilisation d'un identifiant, par exemple « <tt>h1#nom-du-site {color: black}</tt> » (vaut 101 points de priorité: 1 pour l'élément, 100 pour l'identifiant)
# style dans la balise Html, par exemple « <tt><nowiki><h1 style="color: black">...</h1></nowiki></tt> » (vaut 1000 points de priorité)
 
Un style moinsde prioritairemoindre priorité ne peut jamais modifier un style de priorité plus prioritaireélevée. Il existe cependant un moyen de déroger à cette règle : la mention <tt>!important</tt>. Cette mention s'insère juste derrière une valeur de propriété CSS et indique au navigateur qu'il ne faut pas tenir compte de styles contradictoires par la suite. Elle s'utilise de cette manière :
 
p {
color: gray !important;
}
 
Cette mention n'est toutefois pas interprétée par les Internet Explorer 5.0, 5.5 et 6.0 de Microsoft, il ne faut donc pas compter sur elle pour contourner les règles de priorité !
 
==== Calcul de spécificité ====
147

modifications