Menu accordéon horizontal

Bonjour,
Je souhaiterai savoir comment faire un menu accordéon horizontal comme celui-ci: http://www.rueducommerce.fr/home/index.htm , car je n'ai jamais trouvé comment le faire,donc si vous pouviez m'aider vous seriez gentil
Merci d'avance

21 réponses

Résumé de la discussion

La problématique porte sur la création d'un menu accordéon horizontal reposant sur une structure de listes imbriquées et un CSS qui affiche les sous-menus au survol. La solution fournit le code HTML d'exemple avec div id="menu" et des listes ul/li, ainsi qu'un CSS qui organise les éléments en ligne et révèle les sous-menus lors du survol. Des variantes évoquées permettent des personnalisations visuelles, comme des coins arrondis ou des surlignements au passage, ainsi que des ajustements de hauteur, de police et de positionnement selon les préférences utilisateur. Plusieurs échanges autour du design indiquent que la solution peut nécessiter des ajustements spécifiques selon le navigateur et les versions, comme Chrome ou d'autres, afin d'assurer un rendu homogène.

Bobot (l’IA à votre service)
  1. A tu une copie écran quand un menu déroulant est déplié ?
    0
    1. C'est bon, mon menu est centré mais les sous-menus s'affichent horizontalement et non verticalement !
      Quelqu'un pourrait t-il y remédier ?

      body 
      { 
      width: 100%; 
      background-color: #97EB66; 
      } 
      
      #menu ul { 
      margin:0; 
      padding:0; 
      list-style-type:none; 
      text-align:center; 
      } 
      
      #menu li { 
      display:inline-block; 
      margin:auto; 
      padding:0; 
      background-color:#f40000; 
      } 
      
      #menu li a { 
      display:block; 
      width:100px; 
      color:white; 
      text-decoration:none; 
      padding:5px; 
      } 
      
      #menu li a:hover { 
      color: #000000;
      background-color: #0000FF; 
      } 
      
      #menu ul li ul { 
      display:none; 
      } 
      
      #menu ul li:hover ul { 
      display:block; 
      } 
      
      #menu li:hover ul li { 
      float:none; 
      } 
      
      #menu li ul { 
      position:absolute;
      } 
      
      #menu 
      { 
       
      text-align: center; 
      
      } 
      
      #menu a 
      { 
      text-align: center; 
      }
      0
      1. Tu as le temps de me répondre maintenant 88av ?
        0
        1. Ok à plus tard alors ;)
          Ps: si quelqu'un d'autre veut me répondre, il peut.
          0
          1. J'ai compris ce que tu veux dire, mais je vais regarder un autre jour, là, j'ai pas trop le temps.
            0
            1. Je voudrais mettre 7 onglets et pour ce qui est de ce que tu ne comprends pas, je voudrais écrire "ACCEUIL" des deux cotés du menu mais ca décale le menu et "ACCEUIL".
              Voici le lien pour que tu vois: http://img407.imageshack.us/img407/6854/imagemenuhorizontal.jpg
              0
              1. Je ne comprend pas.

                Par contre, pour que ton menu fasse toute la largeur de la page, ça dépend combien tu veux mettre d'onglet a ton menu.
                0
                1. Ca ne marche pas et en plus j'aimerais pouvoir écrire des deux cotés du menu sans que ca le decale
                  0
                  1. #menu
                    {
                    height:50px;
                    text-align: center;
                    font-size: 20px;
                    width: 100%;
                    }

                    :)
                    0
                    1. Et comment fait-on pour qu'il fasse toute la largeur de la page?
                      0
                      1. Merci, ça fonctionne à merveille!
                        0
                        1. Je crois que j'ai trouvé : dans le code CSS, tu dois normalement avoir ça :

                          #menu
                          {
                          height:50px;
                          text-align: center;
                          font-size: 20px;
                          }

                          En fait, il faut rajouter ces lignes :

                          margin-left: 25%;
                          margin-right: 25%;
                          width: 50%;

                          Cela donne :

                          #menu
                          {
                          height:50px;
                          text-align: center;
                          font-size: 20px;
                          margin-left: 25%;
                          margin-right: 25%;
                          width: 50%;
                          }

                          Normalement, ça devrait marcher.
                          0
                          1. Ca ne marche pas. Aidez moi SVP! :'(
                            0
                            1. Je nais pas eu le temps d'essayer, mais essaye de mettre la balise <center> dans le code html. Voila ce qu'il faut faire :

                              <html>
                              <body>
                              <center>

                              Le code html

                              </center>

                              </body>
                              </html>

                              Je redit que je n'ai pas eu le temps d'essayer, mais si ça ne marche pas, alors, je ne saurais pas comment faire.
                              0
                              1. Comment centrer le menu car j'ai essayé de modifier le fichier css et html mais ça ne change rien :(
                                Merci de votre aide
                                0
                                1. Oui moi aussi, mais avant une question, tu n'aurai pas un lien pour les styles des menus accordéons, histoire que je le rende super dart?
                                  0
                                  1. Non, désolé
                                    0
                                2. Pas tout à fait car je voulais faire un effet.C'étais d'arrondir les coins des menus et quand on passait sur un lien ça le surlignait , comme sur ce site en haut en droite de la page: https://jquery.com/
                                  0
                                  1. Pour arrondir, je ne sais pas, mais pour surligner quand on passe la souris, c'est simple :

                                    Dans le code CSS, tu dois avoir ça :

                                    #menu li a:hover {
                                    color:#FFD700;
                                    }

                                    Il suffit de rajouter cette ligne:
                                    background-color: #000000;

                                    Cela donne donc :

                                    #menu li a:hover {
                                    color:#FFD700;
                                    background-color: #000000;
                                    }
                                    0
                                  2. merci!
                                    0
                                  3. pour arrondir les coins, tu utilise la propriété "border-radius" sur l'élément voulu

                                    En exemple :

                                    #menu { background:#333; border-radius:4px; }
                                    0
                                  4. Là, je pense que tu peut mettre "résolue" a la question.
                                    0
                                3. Merci pour ses informations :)
                                  0
                                  1. De rien !!!

                                    Ta question est-elle résolut ?
                                    0
                                4. Merci beaucoup 88av, mais juste une question, comment tu fais pour enlever la couleur de fond?
                                  0
                                  1. Pour enlever la couleur du fond de la page, dans le code css, tu dois avoir ça :

                                    body
                                    {
                                    width: 93%;
                                    background-color: #97EB66;
                                    }

                                    En faites, il suffit d'enlever la ligne background-color: #97EB66;

                                    __________________________________________________________________________

                                    Pour enlever la couleur du menu déroulant, dans le code css, tu dois avoir ça :

                                    #menu li {
                                    float:left;
                                    margin:auto;
                                    padding:0;
                                    background-color:#f40000;
                                    }

                                    Et bien tu enlève la ligne background-color: #f40000;

                                    __________________________________________________________________________

                                    Si tu veux, tu peut aussi changer le code couleur.
                                    0
                                • 1
                                • 2