Un équivalent compatible IE du sélecteur d'enfant en CSS
"Internet Explorer ne reconnaît pas le sélecteur d'enfant. Comment puis-je éviter de cibler les sous-éléments d'un élément quand je vise ce dernier ?"
(04/07/2005)
L'âge avancé du navigateur de Microsoft oblige les développeurs Web à redoubler
d'attention quand il s'agit d'utiliser des techniques pourtant standards et largement
reconnues chez les autres navigateurs. Le sélecteur d'enfant ">"
est de ces règles CSS qu'Explorer ignore. Elle permet d'appliquer un style sur
les enfants d'un élément.
#contenu > p { ... }
Une manière de le remplacer est d'utiliser le sélecteur universel *
: le style s'appliquera à tous les enfants d'un éléments :
#contenu * { ... }
Un problème
survient quand on veut que cette règle ne s'applique pas aux enfants de ces sous-éléments.
Le sélecteur universel pendant en compte tous les éléments contenu dans un élément,
ainsi que leur descendant, un style peut facilement s'appliquer à des éléments
qui ne sont pas censés l'utiliser.
La solution consiste à double le sélecteur universel : une première règle applique
le style à tous les sous-éléments de l'élément de base, tandis que la règle suivante
"annule" cette règle pour les sous-éléments de ces sous-éléments :