J'ai le code SASS comme ceci:
li {
&:last-child, &.last-child {
color: red;
}
}
Et le code HTML:
<ul>
<li class="last-child">Hello there!</li>
</ul>
Le code ci-dessus ne fonctionne pas dans IE8. Je sais que IE8 n'est pas pris en charge: last-child, j’ai défini .last-child à cette fin.
Quand j'édite le code SASS à ceci:
li {
&:last-child {
color: red;
}
&.last-child {
color: red;
}
}
Tout fonctionne maintenant, mais cela conduit à la duplication de code.
J'ajoute .last-child pour IE8 avec la fonction JS, mais je pense que cela n'a pas d'importance.
Exemple http://codepen.io/anon/pen/LFGAr
Réponses:
2 pour la réponse № 1Le problème ici est que vous ne pouvez tout simplement pas "combiner un sélecteur non pris en charge avec un sélecteur pris en charge. Le navigateur a pour abandonner la règle entière. Voir le spec.
Depuis que vous ajoutez le .last-child
classe avec JS, il peut être plus simple de simplement utiliser cette classe et de renoncer à l'utilisation de :last-child
pour la simple raison qu’il n’est pas pris en charge dans IE8. Si vous souhaitez utiliser :last-child
et supprimer le support IE8 plus tard si cela devient une option, vous devrez vivre avec la duplication de code pour le moment.