Une saine lecture. C'est du classique mais il est toujours bon de rappeler les possibilités offertes par CSS. Bon par contre, n'abusez pas de sélecteurs ultra compliqués. Même s'il est possible de faire des choses assez complexes, ça ne veut pas dire que c'est judicieux. En ce qui me concerne, les sélecteurs avancés me sont surtout utiles quand je dois customiser du code HTML sur lequel je n'ai pas la main.
Juste une petite rectification sur l'article :after et :before sont des pseudo-éléments et pas des pseudo-classes.
Par contre quand je vois ce type d'articles je m'interroge toujours sur les performances de chaque sélecteur. Je me doute qu'à moins d'y aller comme un bourrin, les différences en perf sont négligeables mais si quelqu'un a un comparatif ça m'intéresse.