Maison > interface Web > tutoriel CSS > Pourquoi ma navigation collante ne fonctionne-t-elle pas lorsqu'elle est imbriquée dans un élément positionné ?

Pourquoi ma navigation collante ne fonctionne-t-elle pas lorsqu'elle est imbriquée dans un élément positionné ?

DDD
Libérer: 2024-12-29 08:14:10
original
560 Les gens l'ont consulté

Why Doesn't My Sticky Navigation Work When Nested Within a Positioned Element?

Dépannage de « position:sticky » dans les éléments imbriqués

Lors de la définition de la fonctionnalité collante avec « position:sticky », vous pouvez rencontrer des situations où le le comportement devient incohérent au sein des éléments imbriqués. Voyons pourquoi cela se produit et comment le résoudre.

Comprendre le problème

"position:sticky" positionne un élément par rapport à la fenêtre, créant ainsi un "sticky " effet lors du défilement. Cependant, lorsqu'un élément est imbriqué dans un autre élément positionné, la propriété "position:sticky" se comporte différemment.

Dans votre exemple, vous avez un "nav-wrapper" avec "position:absolute" et un "nav " élément à l'intérieur avec "position: sticky." Le problème ici est que l'élément parent ("nav-wrapper") définit la hauteur de l'élément collant ("nav"), ne laissant aucune place au comportement collant à l'intérieur de l'élément parent.

Résoudre le problème

Pour résoudre ce problème, assurez-vous que l'élément parent ne contraint pas la hauteur de l'élément collant. Ceci peut être réalisé en supprimant la hauteur fixe ou en utilisant des options de dimensionnement flexibles telles que « hauteur minimale » ou « hauteur maximale ».

Exemple avec bordure pour la visualisation

Voici un exemple avec une bordure ajoutée à l'élément parent pour une visualisation plus facile :

.nav-wrapper {
  position: absolute;
  bottom: 0;
  border: 2px solid;
}

.nav-wrapper nav {
  position: sticky;
  top: 0;
}

body {
  min-height: 200vh;
}
Copier après la connexion
<div class="nav-wrapper">
  <nav>
    <a href="#">
      <li>Home</li>
    </a>
    <a href="#">
      <li>About</li>
    </a>
  </nav>
</div>
Copier après la connexion

En supprimant la hauteur fixe de l'élément parent, le comportement collant fonctionnera désormais comme prévu dans l'élément imbriqué.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal