Il est possible d'attribuer plusieurs classes à une division. J
<div class="rule1 rule2 rule3">Content</div>
Cette division correspondra ensuite à toutes les règles de style de trois sélecteurs de classe différents : .rule1
, .rule2
y .rule3
.
Les règles CSS sont appliquées aux objets de la page qui correspondent à leurs sélecteurs dans l'ordre où ils sont rencontrés dans la feuille de style. S'il y a un conflit entre deux règles (plus d'une règle essayant de définir le même attribut), alors Spécificité de la CSS détermine la règle qui a la priorité.
Si la spécificité CSS est la même pour les règles en conflit, alors la dernière (celle définie plus tard dans la feuille de style ou dans la feuille de style ultérieure) a la priorité. L'ordre des noms de classe sur l'objet lui-même n'a pas d'importance. C'est l'ordre des règles de style dans la feuille de style qui importe si la spécificité CSS est la même.
Donc, si vous aviez des styles comme ça :
.rule1 {
background-color: green;
}
.rule2 {
background-color: red;
}
Puisque les deux règles correspondent à la division et ont exactement la même spécificité CSS, la deuxième règle vient plus tard, elle est donc prioritaire et l'arrière-plan est rouge.
Si une règle avait une spécificité CSS plus élevée ( div.rule1
obtient un score plus élevé que .rule2
) :
div.rule1 {
background-color: green;
}
.rule2 {
background-color: red;
}
Ensuite, il aurait la priorité et la couleur de fond ici serait le vert.
Si les deux règles ne sont pas en conflit :
.rule1 {
background-color: green;
}
.rule2 {
margin-top: 50px;
}
Ensuite, les deux règles seront appliquées.