La valeur sticky de la propriété position a été ajoutée à CSS Positioned Layout Module Level 3. Pour rappel, il existe plusieurs valeurs à cette propriété :
- static (par défaut)
- relative
- absolute
- fixed
- sticky
On va seulement s'intéresser à cette dernière valeur : sticky. Partons sur l'idée que vous connaissez les autres valeurs. Dans la cas contraire, vous pouvez vous renseigner sur ces valeurs.
Le positionnement collant va permettre à un élément de rester visible pendant que l'utilisateur fait défiler la page ou le conteneur dans lequel se trouve l'élément collant, puis adopte une position fixe lorsque l'élément atteint une distance spécifique (en haut, bas, gauche ou droite) de la fenêtre de défilement.
Construire un menu collant :
Ci-dessous une mise en pratique de la valeur sticky sous forme de menu. Faites défiler le contenu via la barre (le scroll) sur le côté, vous constaterez alors que le menu reste collé en haut.
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<div class="cadre-sticky">
<h2>Titre</h2>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</div>
<body
<header>
<div>
<h1>CSS shrink sticky header</h1>
</div>
</header>
<main>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Harum, perspiciatis blanditiis accusamus commodi consectetur id tempora rem iure eligendi quos eos et autem ratione exercitationem earum laborum ad a sequi!</p>
</main>
Il est évident que si vous souhaitez utiliser la valeur sticky dans vos projets, le manque de compatibilité vous obligera à passer par un polyfill (EN) , et plus particulièrement stickyfill .
Vous rencontrez un problème avec cet article ?
Vous avez remarqué une faute, un oubli, un lien mort ? Vous ne comprenez pas un point précis de l'article ? Vous pouvez me contacter par mail (contact@guyom-design.com) et je vous aiderai si je le peux.