IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Menu Burger qui pousse le contenu plutot qu'il le recouvre


Sujet :

CSS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 342
    Points : 123
    Points
    123
    Par défaut Menu Burger qui pousse le contenu plutot qu'il le recouvre
    Bonjour,

    J'ai un petit menu urger que j'ai mis en pièce jointe.
    Je cherche juste à plutot que le menu apparait au dessus du contenu, j'aimerais qu'il pousse le contenu vers la droite.
    Mais je n'y arrive pas du tout .
    HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <!DOCTYPE html>
    <html lang="en" >
    <head>
      <meta charset="UTF-8">
      <title>CodePen - Comment faire un menu burger en HTML/CSS ?</title>
      <link rel="stylesheet" href="./style.css">
     
    </head>
    <body>
    <!-- partial:index.partial.html -->
    <div id="mySidenav" class="sidenav">
      <a id="closeBtn" href="#" class="close">&times;</a>
      <ul>
        <li><a href="#">A propos</a></li>
        <li><a href="#">Nos services</a></li>
        <li><a href="#">Témoignages</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </div>
     
    <a href="#" id="openBtn">
      <span class="burger-icon">
        <span></span>
        <span></span>
        <span></span>
      </span>
    </a>
    <!-- partial -->
      <script  src="./script.js"></script>
     
    </body>
    </html>
    CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    /* Sidenav menu */
    .sidenav {
      height: 100%;
      width: 250px;
      position: fixed;
      z-index: 1;
      top: 0;
      left: -250px;
      background-color: #e8e8e8;
      padding-top: 60px;
      transition: left 0.5s ease;
    }
     
    .sidenav ul {
      list-style-type: none;
      padding: 0;
      margin: 0;
    }
     
    /* Sidenav menu links */
    .sidenav a {
      padding: 8px 8px 8px 32px;
      text-decoration: none;
      font-size: 25px;
      color: #818181;
      display: block;
      transition: 0.3s;
    }
     
    .sidenav a:hover {
      color: #111;
    }
     
    /* Active class */
    .sidenav.active {
      left: 0;
    }
     
    /* Close btn */
    .sidenav .close {
      position: absolute;
      top: 0;
      right: 25px;
      font-size: 36px;
    }
     
    .burger-icon span {
      display: block;
      width: 35px;
      height: 5px;
      background-color: black;
      margin: 6px 0;
    }
    JS :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var sidenav = document.getElementById("mySidenav");
    var openBtn = document.getElementById("openBtn");
    var closeBtn = document.getElementById("closeBtn");
     
    openBtn.onclick = openNav;
    closeBtn.onclick = closeNav;
     
    /* Set the width of the side navigation to 250px */
    function openNav() {
      sidenav.classList.add("active");
    }
     
    /* Set the width of the side navigation to 0 */
    function closeNav() {
      sidenav.classList.remove("active");
    }

    Est ce que vous pourriez m'aider ?

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 961
    Points : 44 133
    Points
    44 133
    Par défaut
    Bonjour,
    pour commencer il te faut créer un conteneur pour le contenu de ta page, on peut faire par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <div id="mySidenav" class="sidenav">
      <a id="closeBtn" href="#" class="close">&times;</a>
      <ul>
        <li><a href="#">A propos</a></li>
        <li><a href="#">Nos services</a></li>
        <li><a href="#">Témoignages</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </div>
     
    <a href="#" id="openBtn">
      <span class="burger-icon">
        <span></span>
        <span></span>
        <span></span>
      </span>
    </a>
    <!-- le contenu de la page -->
    <main id="right-side">
      <section>
        <h2>Titre</h2>
        <p>Du contenu</p>
      </section>
    </main>
    dans l'exemple ci-dessus l'élément <main> est un élément adjacent indirect de ton menu, ils ont même parent mais ne se suivent pas.

    Côté CSS, il suffit de lettre une marge à gauche égale à la largeur de ton menu. Cela donne le CSS suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #right-side {
      margin-left: 0;
      transition: .5s;                /* même délai que pour le menu */
    }
    .sidenav.active ~ #right-side {   /* ciblage avec sélecteur ~ (tilde) */
      margin-left: 250px;             /* largeur du menu */
    }
    Cela devrait fonctionner sans rien changer d'autre.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 342
    Points : 123
    Points
    123
    Par défaut
    Super merci beaucoup.Ca marche nikkel et je ne connaissais pas du tout cette annotation. J'aurais pu chercher longtemps.
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu déroulant qui décale le contenu
    Par apt dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 21/05/2011, 19h02
  2. menu déroulant qui pousse ce qui est en dessous
    Par bibimo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/05/2009, 10h58
  3. menu accordéon qui pousse les boutons
    Par joviper dans le forum Flash
    Réponses: 0
    Dernier message: 09/04/2009, 22h10
  4. Menu déroulant qui déplace le contenu (tuto Developpez.net)
    Par Jarodd dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 09/01/2009, 22h18
  5. menu déroulant qui pousse les autres éléments
    Par JackBeauregard dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 12/05/2007, 02h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo