Dans cette situation, comment pourrais-je obtenir le réglage permettant de conserver l’état survolé pendant le lancement des éléments de menu? Existe-t-il un moyen uniquement CSS ou devrais-je introduire du javascript? Merci.
C’est possible avec juste css.
Par exemple: Si votre menu est composé de listes nestedes:
li:hover { background: #color; } li:hover ul { display: block; } li:hover ul li {}
Fiddle: http://jsfiddle.net/maniator/ZC4xv/
CSS de l’exemple ci-dessus:
#nav-menu > li { background: orange; float: left; padding: 10px; border: 1px solid grey; } #nav-menu > li:hover a { background: red; padding: 2px; display: inline; } #nav-menu > li ul { display: none; position: absolute; } #nav-menu > li:hover ul { display: block; margin-left: 5px; } #nav-menu > li:hover ul li { background: blue; } #nav-menu > li:hover ul li:hover { background: green; }
En supposant que le sous-menu soit une liste nestede, vous pouvez utiliser jQuery pour append une classe de survol à l’élément de menu parent:
- Menu Item 1
- Sub-Menu Item 1
- Sub-Menu Item 2
- Menu Item 2
Essayez avec un élément de niveau supérieur dans une balise span. En supposant:
Setting ...
Alors ceci est pour CSS:
li:hover span { background: #color; display: block; } li:hover ul { display: block; }