Affichage de sous-menu

Eléphant du PHP | 65 Messages

27 déc. 2021, 22:06

Bonjour, j'ai du mal à afficher mes sous-menus. Il s'affichaient correctement avant de les rendre dynamiques. Les catégories principales du menu s'affichent bien, tandis que pour le sous-menu, une seule sous catégorie s'affiche pour chaque catégorie.
Le code HTML généré affiche bien les sous-menu, mais j'ignore si j'ai mal placé le <a href> ou le CSS:
Voilà ce que ça donne en gros:
https://imgur.com/8L1X2GV

Code : Tout sélectionner

<?php $menus = getMenu(0); echo '<ul>'; foreach ($menus as $menu) { echo "<li class='menu'><a href= 'affichage.php?id={$menu['id']}'>{$menu['nom']}</a>"; $sous_menus = getMenu($menu['id']); if ($sous_menus !== false) { echo '<ul>'; foreach ($sous_menus as $sous_menu) { echo "<li class='submenu'><a href= 'affichage.php?id={$menu['id']}'>{$sous_menu['nom']} </a></li>"; } echo '</ul>'; } echo '</li>'; } echo '</ul>'; ?>
Le CSS/
nav > ul > li:hover > a {
  padding: 15px 30px 20px 30px;
}

  
nav li{
 list-style-type: none; 
}
.submenu{
  display: none;
  background-color: silver;
}
nav input[type=checkbox]{
  display:none;
}
nav label{
  display:none;
}

nav a{
  display: inline-block;
  text-decoration: none;
}

nav li:hover .submenu{
display: inline-block;
position: absolute;
top: 100%;
left: 0px;
padding: 0px;
z-index: 1000;
}

.submenu li {
  border-bottom: 1px solid white;
}

.submenu li a{
  padding: 15px 30px;
  font-size: 13px bold;
  color: white;
  width: 270px;
}

.submenu li a:hover{
background-color: orange;
}

.menu:hover{
  border-top: 5px solid yellow;
  background-color: silver;
}
@media screen and (max-width:780px){
  .menu-mobile{
    display:block;
    color:#fff;
    background-color:orange;
    text-align:center;
    padding: 12px 0px;

  }
  nav ul{
    display:none;
  }
  nav ul li, nav ul li a{
    width: 100%;
    text-align:center;
  
  }
  nav ul li a, nav ul li:hover a{
    padding: 10px 0px;
  }
  nav li:hover .submenu{
    display: block;
    position: static;
  }

}
Si quelqu'un peut m'apporter une aide merci :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 déc. 2021, 00:22

Il faut que tu regardes le HTML généré (Ctrl+u) pour voir où est le problème.
Quand tout le reste a échoué, lisez le mode d'emploi...