Maison >interface Web >tutoriel CSS >Pourquoi `:first-child` ne parvient-il pas à sélectionner le premier `` dans les éléments imbriqués et comment puis-je y remédier ?
: le premier enfant ne parvient pas à correspondre aux éléments attendus dans certains cas
Lors de la tentative de sélection du premier élément h1 dans un div avec la classe "detail_container", le sélecteur :first-child peut ne pas fonctionner comme prévu. Cela se produit lorsque h1 n'est pas l'enfant immédiat du div, comme dans l'exemple suivant :
<style type="text/css"> .detail_container h1:first-child { color: blue; } </style> <body> <div class="detail_container"> <ul> <li></li> <li></li> </ul> <h1>First H1</h1> <h1>Second H1</h1> </div> </body>
Dans ce cas, le sélecteur :first-child ne parvient pas à sélectionner le premier h1 car l'élément ul est le premier enfant du div, pas le h1.
Comment résoudre le problème
Pour sélectionner le premier élément h1, quelle que soit sa position dans le div, il existe d'autres sélecteurs CSS disponibles :
1. :first-of-type
Le sélecteur :first-of-type sélectionne le premier enfant de son parent qui correspond à un type d'élément donné. Dans ce cas, il sélectionnerait le premier enfant h1 du div, comme suit :
.detail_container h1:first-of-type { color: blue; }
2. Sélection basée sur les classes
Une autre approche consiste à donner au premier h1 une classe unique, telle que "first", puis à cibler cette classe dans le CSS :
.detail_container h1.first { color: blue; }
Ceci La méthode offre une plus grande flexibilité et un plus grand contrôle sur la sélection.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!