Maison > interface Web > tutoriel CSS > Pourquoi « débordement : caché » brise-t-il la « position : collante » ?

Pourquoi « débordement : caché » brise-t-il la « position : collante » ?

Patricia Arquette
Libérer: 2024-12-06 18:31:12
original
400 Les gens l'ont consulté

Why Does `overflow: hidden` Break `position: sticky` Behavior?

Pourquoi overflow:hidden peut interférer avec le comportement de position:sticky

Dans le développement Web, position:sticky permet à un élément de rester visible et positionné dans son conteneur pendant que l'utilisateur fait défiler un conteneur ou une fenêtre parent. Cependant, lorsque le conteneur a overflow:hidden appliqué, cela peut empêcher position:sticky de fonctionner comme prévu.

Problème d'origine :

Considérez le code HTML suivant :

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>
Copier après la connexion

L'élément collant restera visible et positionné dans le div parent en tant qu'utilisateur scrolls.

Problème de débordement :

Si vous ajoutez overflow:hidden au div parent, l'élément collant ne collera plus au haut du conteneur et défilera de view.

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>

Copier après la connexion

Cause :

overflow:hidden masque tout contenu qui s'étend au-delà des limites de son conteneur. Cela inclut l'élément collant lorsqu'il est positionné en dehors de la zone visible du conteneur.

Résolution :

Pour éviter que overflow:hidden n'interfère avec position:sticky, vous avez deux options :

  • Utiliser des techniques modernes : Depuis la publication initiale de cette question, CSS a évolué pour introduire contain: paint. En définissant contain: paint sur le conteneur parent, vous pouvez empêcher le contenu débordant de s'échapper et vous assurer que l'élément collant reste visible et positionné correctement.
.parent {
  contain: paint;
}
Copier après la connexion
  • Ajuster la propriété de débordement : Alternativement, vous pouvez définir la propriété overflow sur auto ou scroll au lieu de masquée. Cela permet au contenu de s'étendre au-delà des limites du conteneur et garantit que l'élément collant reste visible.
.parent {
  overflow: auto;
  /* or */
  overflow: scroll;
}
Copier après la connexion

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal