Je dois analyser le CSS des ensembles de documents html pour les règles qui ont un flottant: left/right.Spécificité css lorsque l'élément DOM a plusieurs classes
J'ai compris comment tout fonctionne quand il y a un ensemble d'éléments DOM imbriqués dont chacun a au plus une classe. La spécificité de la règle est basée sur le numéro de sélecteur calculé, id d'abord, puis class, puis tag elem. En cas d'égalité, choisissez la règle qui vient en dernier. Donc, l'idée de spécificité est qu'au plus une règle est choisie en fonction de la spécificité du sélecteur en faisant correspondre l'élément DOM. Que dois-je faire quand il y a plusieurs classes, pas seulement à l'enfant DOM le plus profond, mais aux niveaux parents. Plusieurs classes au format simple choisissent et appliquent plusieurs règles. Mais je ne peux pas comprendre l'ensemble des lignes directrices pour déterminer comment la spécificité interagit avec cela. Par exemple. normalement, la spécificité choisit une règle, la plus haute spécificité. Mais avec plusieurs classes dans l'élément DOM terminal, dans les cas simples démontrés sur internet, les multiples règles sélectionnées par plusieurs classes ont la même spécificité. Mais je peux voir des scénarios beaucoup plus complexes, et je ne sais pas comment choisir les règles.
est ici un cas:
p.cls1 {
}
div#id1 p.cls2 {
}
.cls3 {
}
Html:
<div id="id1"><p class="cls1 cls2 cls3">...
Toutes les 3 classes sélectionnées se même si tous les trois ont des nombres différents de spécificité. Cependant, je pourrais aggraver le problème en donnant plusieurs classes à la div extérieure. Impossible de trouver des informations dans la spécification css 2.1 qui indique ce qui est supposé se produire et comment plusieurs classes sélectionnent plusieurs règles, en dépit de leur spécificité.
Andy
Vous avez oublié '! Important' qui ajoute un niveau de règle entièrement nouveau. – Khez
Ajout de la mise à jour ci-dessous. J'espère que c'est utile. –