J'ai développé un menu, mais je veux ajouter une fonctionnalité de clavier au menu. Lorsque le menu est focalisé, je voudrais pouvoir appuyer sur pour entrer le pour afficher le menu. Ensuite, je serais en mesure d'appuyer sur Tab pour sélectionner les éléments de menu. Ensuite, je veux appuyer sur ESC pour masquer les éléments de menu.Comment implémenter ce menu en utilisant un pseudo-classeur css?
Comment changer mon CSS?
HTML
<ul class="hMenu">
<li><a href="">prod1</a>
<div>
<a href="">test1</a>
<a href="">test2</a>
<a href="">test3</a>
</div>
</li>
<li><a href="javascript:void(0);" >prod2</a>
<div>
<a href="">test4</a>
<a href="">test5</a>
</div>
</li>
</ul>
CSS
ul.hMenu li:hover a {
color:red;
}
ul.hMenu {
margin: 0;
padding: 0;
z-index: 1;
}
ul.hMenu li {
margin: 0;
padding: 0;
list-style: none;
float: left;
width:140px;
}
ul.hMenu li a {
display: block;
text-align: left;
text-decoration: none
}
ul.hMenu li div {
position: absolute;
display: none;
}
ul.hMenu div a {
background: yellow;
}
ul.hMenu li :hover {
background: yellow
}
/**Mouse hover the menus can show up**/
ul.hMenu li:hover div{
display:block;
}
Je ne pense pas que vous pouvez le faire sans js – Horst
Je suis d'accord avec @fattomhk il y a les: pseudo-sélecteurs actifs et: focus https://developer.mozilla.org/en-US/docs/Web/CSS/:active et https://developer.mozilla.org/en-US/docs/Web/CSS/:focus Le: actif ne semble fonctionner que lorsque le bouton principal de la souris est enfoncé, et le: focus ne semble être appliqué que lorsque l'élément a le focus du clavier. Pour ce que vous demandez en utilisant JavaScript pour changer les classes serait nécessaire. – HJ05