J'étais bloqué sur ce problème pendant un moment et je voulais partager cette position : sticky
+ flexbox issue :
Mon div collant, après être passé à la vue conteneur flexbox, n'est soudainement plus collant lorsqu'il est enveloppé dans un élément parent flexbox.
.flexbox-wrapper { affichage : flexible ; hauteur : 600 px ; } .régulier { couleur de fond : bleu ; } .collant { position : -webkit-sticky ; position : collante ; haut : 0 ; couleur de fond : rouge ; }C'est une boîte ordinaireC'est une boîte collante
Problème d'affichage JSFiddle
Dans mon cas, un conteneur parent appliquait la fonctionnalité de
overflow-x: hidden;
这个样式,这会破坏position: sticky
. Vous devez supprimer cette règle.Aucun élément parent ne doit être soumis aux règles CSS ci-dessus. Cette condition s'applique à tous les éléments parents jusqu'à (mais non compris) l'élément 'body'.
Étant donné que l'élément flexbox est par défaut
stretch
, tous les éléments ont la même hauteur et ne peuvent pas défiler.Ajoutez
align-self: flex-start
à l'élément collant, réglez la hauteur sur automatique, permettant ainsi le défilement et la fixation.Actuellement, cela est pris en charge dans tous les principaux navigateurs, mais Safari a encore quelques problèmes avec l'utilisation des tables de
-webkit-
前缀,而除了Firefox之外的其他浏览器在使用position: sticky
.