CSS menu déroulant - CSS3 transition
Im création d'un menu déroulant. Assez simple fonctionne bien sur un ordinateur de bureau. J'ai besoin d'utiliser la même balise pour sensible aussi. Imaginez que le menu s'affiche lorsqu'un utilisateur clique sur un menu-icon, puis il suffit de tous les éléments de la liste sont empilées les unes au-dessous des autres.
Lorsque l'utilisateur place le pointeur sur l'élément de menu 1", puis le sous-menu s'affiche. Pour le moment j'ai simplement il d'apparaître et de disparaître sur le vol stationnaire. Il n'a pas l'air très agréable. Je me demandais si il y avait une façon simple d'utiliser un CSS3 transition pour faire de cette déroulant bien.
Grâce
CSS
.sub-menu{
display:none;
}
li.sub-menu-parent:hover .sub-menu {
display: block;
}
HTML
<nav>
<ul>
<li class="sub-menu-parent"><a href="#">Menu Item 1</a>
<ul class="sub-menu">
<li><a href="#">Sub Item 1</a></li>
<li><a href="#">Sub Item 2</a></li>
<li><a href="#">Sub Item 3</a></li>
<li><a href="#">Sub Item 4</a></li>
</ul>
</li></ul>
<li><a href="#">Menu Item 2</a></li>
<li><a href="#">Menu Item 3</a></li>
<li><a href="#">Menu Item 4</a></li>
<li><a href="#">Menu Item 5</a></li>
</ul>
</nav>
Je suis sûr que taper sur un téléphone qui équivaut à un hover sur un ordinateur.
Un onglet sur un téléphone assimiler un hover, mais ne dépend pas d'elle. Il est maladroit, et ne fonctionne pas lorsque vous êtes en tapant sur un lien (comme dans votre exemple de code).
Le nombre incalculable de fois, j'ai navigué sur un site mobile en essayant d'entrer dans les sous-pages de navigation et finirent par ailleurs, à cause de l'passez question, il est utile d'examiner. Les vêtements des sites web semblent être la pire et de toute autre non-optimisation de sites web avec les menus déroulants. Vous pourrait émuler un "tapé" état à l'aide de cases à cocher pour stocker un "tapé" état et ensuite utiliser le
:checked
sélecteur css de la même manière que :hover
. Pour un exemple de cette case, méthode, regarde mon pur CSS accordéon: jsfiddle.net/EumGj/2OriginalL'auteur BhikhaM | 2013-11-20
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'utiliser un moyen de s'en cacher qui n'utilise pas
display: none
si vous voulez faire une transition en douceur. Les navigateurs ne peuvent transition denone
àblock
, donc c'est un instant de bascule.Une façon de cacher la
.sub-menu
est d'utiliservisibility: hidden;
puisvisibility: visible;
sur l'état de pointage, cependant cela rend la transition un peu plus difficile. Si vous venez detransition: all 0.5 ease
, puis le menu va s'estomper en douceur, mais disparaissent rapidement, chaque fois qu'il perd le :hover.Il y a un l'article complet qui traverse le faire, mais l'essentiel est l'ajout d'un
transition-delay
à la visibilité, pour ensuite la retirertransition-delay
sur l'état de pointage.DÉMO: http://codepen.io/shshaw/pen/gsFch
OriginalL'auteur shshaw
C'est vraiment utile pour de belles navigations, en particulier sous le niveau des trajets figurant sur hover etc
http://www.justinaguilar.com/animations/
OriginalL'auteur bowerslive