28247 sujets

CSS et mise en forme, CSS3

Bonjour à tous.
J'ai une page HTML avec la structure suivante:

<body>
  <header>...</header>
  <main>
     ..............................
     ..............................
    <nav>
     ..............................
     ..............................
    </nav>
    <section id="maj">
        <header>
            <h2>....</h2>
            <button>...</button>
        </header>
        <main>.................</main>
    </section>
  </main>
</body>

Ce que j'aimerais faire c'est que le <button> se comporte de la façon suivante lors du défilement de la page à l'écran :
- tant que la <section> #maj n'est pas affichée à l'écran, le <button> n'est pas visible
- quand le <header> de cette <section> est affiché à l'écran, le <button> est affiché dans la marge de cette section.
- quand le <header> de cette section n'est plus visible, le <button> est visible en haut de l'écran.
Je crois comprendre que le positionnement du <button> doit être 'sticky" mais je n'arrive pas à obtenir le résultat recherché.
Pour le moment j'ai mis le <button> en position fixed, ce qui ne correspond pas à mon premier critère: le <button> est visible même quand la<section> ne l'est pas.
Merci pour votre aide.
-
Modifié par PapyJP (13 Feb 2026 - 15:24)
Hello

je pense qu'il faudrait utiliser 2 button, un dans ton header, et un en dehors, et jouer avec JS pour les apparitions de chacun, car il va falloir de toute façon que tu repères les positions de tes éléments dans ton viewport pour savoir quand déclencher les affichages de tes boutons.
Merci de ta réponse.
J’ai finalement modifié la présentation de la page pour ne plus avoir cette contrainte