#12960

Combinateurs et pseudo-classes CSS

Attention, si les pseudo-classes sont bien avec un seul double-point « : », les pseudo-éléments doivent désormais en porter deux : « :: ».

On met donc « element::before » ou « element::after ».

C’est logique : les pseudo-classes constituent des variantes d’un élément existant (hover [variante « sous la souris »], nth-of-type [variante « le énième élément »]…), alors qu’un pseudo élément est un élément à part entière (le element::before est stylisé indépendamment de l’élément lui-même : il se comporte donc comme un élément, pas une classe). Logique, donc, de les différentier.

À ce titre également, les pseudo classes et pseudo-élements n’ont pas la même spécificité.

Les navigateurs continuent *pour le moment* de détecter les pseudo-éléments avec un seul double point, mais selon les spécifications, ils n’y sont pas tenus.

(via)
http://la-cascade.ghost.io/combinateurs-et-pseudo-classes-css/