Quelle est la syntaxe CSS appropriée pour appliquer plusieurs pseudo-classes à un sélecteur. Je voudrais insérer "," après chaque élément d'une liste, sauf le dernier. J'utilise le CSS suivant:
ul.phone_numbers li:after {
content: ",";
}
ul.phone_numbers li:last-child:after {
content: "";
}
Cela fonctionne très bien sur FF3, Chrome et Safari 3. IE7 ne fonctionne pas car il ne prend pas en charge: après (comme prévu). Dans IE 8 cela s'affiche avec une virgule après chaque li, y compris le dernier. Est-ce un problème avec IE8 ou ma syntaxe est-elle incorrecte? C'est correct si cela ne fonctionne pas dans IE8 mais je voudrais savoir quelle est la syntaxe appropriée.
:last-child
est une pseudo-classe, tandis que :after
(ou ::after
en CSS3) est un pseudo-élément.
Pour citer la norme :
Les pseudo-classes sont autorisées n'importe où dans les sélecteurs tandis que les pseudo-éléments ne peuvent être ajoutés qu'après le dernier sélecteur simple du sélecteur.
Cela signifie que votre syntaxe est correcte selon CSS2.1 et CSS3 également , c'est-à-dire que IE8 est toujours nul;)
Vous pouvez utiliser le sélecteur de frère adjacent :
ul.phone_numbers li + li:before {
content: ",";
}
Vous pouvez contourner cela en ayant une autre balise dans le <li/>
et appliquez le :after
à cela à la place. De cette façon, vous appliqueriez le :last-child
et :after
à différents éléments:
ul.phone_numbers li > span:after {
content: ",";
}
ul.phone_numbers li:last-child > span:after {
content: "";
}
Il n'y a aucun problème à imbriquer des sélecteurs de pseudo-classe tant que les règles appliquées correspondent à l'élément particulier dans l'arborescence DOM. Je veux faire écho aux possibilités de style avec des sélecteurs de pseudo-classe de site Web w . Cela signifie que vous pouvez également faire des choses comme:
.ElClass > div:nth-child(2):hover {
background-color: #fff;
/*your css styles here ... */
}
IE8 ne prend pas en charge le dernier enfant :( Ils se concentrent sur le tri du support CSS 2.1 auquel il ressemble. Pourquoi Microsoft n'a pas encore adopté Gecko ou Webkit, je ne sais pas.
http://msdn.Microsoft.com/en-us/library/cc351024 (VS.85) .aspx # pseudoclasses