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

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