div ul li {
display: inline-block;
position: relative;
margin: 0 .2em;
}
div ul li a {
display: inline-block;
color: black;
padding: 0.5em 2em;
border-radius: 5px;
}
div ul li a:hover {
background-color:#dfdbd8;
color: #000;
}
div ul li.dropdown ul {
position: absolute;
display: none; /* cache le sous menu */
background-color: #D6B56E;
left: -0.5em;
border-radius: 5px;
padding: 0.4em;
margin-top: .9em;
}
div ul li.dropdown ul li a {
color: #000;
margin: 0.2em 0;
width: 17em;
}
div ul li.dropdown:hover ul, div ul li.dropdown ul:hover {
display: block;
}
Bonjour, quand on passe la souris sur le menu de niveau 1 le sous menu apparait bien, mais il disparait car tu quittes l'élément survoler qui fait apparaitre le sous-menu. Tu te trouves alors dans une zone vide.
Utilises l’inspecteur des éléments (F12) pour voir les limites des éléments, marges intérieurs et extérieurs.
Pour le sélecteur div ul li.dropdown ul supprime le margin-top.
Attention à l’accessibilité, vérifier également que le menu fonctionne au clavier, pour t'y aider voir https://www.frogweb.fr/
PS : ton <div> devrait être une balise de navigation <nav>.
Curieusement ça marche dès que j'ai enlevé le margin-top. Je l'ai définis pour mettre un espacement entre le sous-menu et le menu, comme le montre la capture, c'est plus stylé :
Dommage qu'ils soient accolés (moins design) pour que ça fonctionne. Pourquoi décaler (ou mettre une marge supérieure) le sous-menu a un effet sur son affichage au fait ?
Existe-t-il un moyen CSS pure de les espacer en conservant la même structure HTML et CSS ? Ou faut-il changer cela ?
Il peut y avoir une solution en utilisant mix-blend-mode:screen; et un pseudo élément avec un fond noir pour se placer au dessus de la zone de marge.
Exemple à ajouter sur le code que tu fournis en début de sujet
div ul li.dropdown ul::before {
content:'';
position:absolute
height:1em;/* la hauteur mini requise est égale à ta marge de 0.9em */
width:100%;
bottom:100%;
left:0;
background:black;
mix-blend-mode:screen;/* c'est ici que le noir est remplacer avec les couleurs qui sont dessous */
}
Attention, tester avec SAFARI et autre navigateur Apple. MacOS à des bugs lorsqu'il s'agit de mix-blend-mode et ne fait pas toujours le mélange avec toutes les couches.
fan de PluXml , cuisinier et codeur amateur.Thèmes pour PluXml ? Oui Des plugins? Oui