J'essaie de faire une transition agréable pour le menu de mon site: lorsque l'utilisateur survole l'élément parent, les enfants glissent et quand la souris quitte, ils doivent remonter. Mais ils ne le font pas, comme on le voit dans ce fiddle. Puis j'ai demandé de l'aide ici sur SO et a été pointé à l'aide de l'approche overflow: hidden;
et seulement la transition height
. D'accord. Mais ce cachai les articles de l'élément enfant enfants comme on le voit dans l'extrait ci-dessous:Comportement étrange CSS: débordement et marge gauche
ul {
list-style: none;
padding: 0;
}
li {
width: 180px;
}
#menu ul ul {
position: absolute;
overflow: hidden;
background: red none repeat scroll 0 0;
}
#menu ul li {
position: relative;
}
#menu ul ul li {
height: 0;
transition: height 0.2s ease 0s;
}
#menu ul ul ul {
margin-left: 100%;
top: 0;
}
#menu ul li:hover>ul>li {
height: 32px;
}
<nav id="menu">
<ul>
<li>Parent Item
<ul>
<li>Child Item</li>
<li>Child Item >
<ul>
<li>Child Child Item 1</li>
<li>Child Child Item 2</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
Donc, fondamentalement, les articles « Item enfant Enfant 1 » et « Point enfant Enfant 2 » sont invisibles à l'utilisateur . Comment puis-je avoir à la fois la transition vers le haut/bas de la souris sur le vol stationnaire/quitter et afficher les deux éléments enfants? Peut-il être fait en CSS pur?
Je remarque que j'avais donné une réponse à votre question initiale. Si vous trouvez la solution ci-dessous acceptable, je peux mettre à jour la réponse dans votre question initiale, merci – sol