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 ?

Pourquoi `:first-child` ne parvient-il pas à sélectionner le premier `` dans les éléments imbriqués et comment puis-je y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 10:12:081028parcourir

Why Does `:first-child` Fail to Select the First `` in Nested Elements, and How Can I Fix It?

 : 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn