Bien entendu, nous récupérons le .css déjà utilisé et nous le modifions.
Malheureusement, à cette date, le résultat de ce travail n'est intéressant que sur Chrome. Sur les autres navigateurs, les effets sont plus ou moins visibles. Par exemple sur Firefox et Opéra, l'on ne voit pas les effets de perceptives lors du basculement des blocs sous-menus; je crois que cela vient du fait que les différents navigateurs gèrent différemment les nouvelles propriétés. Comme le résultat n'est pas entièrement satisfaisant, je me contente de vous donner le code utilisé et le résultat sur mon site d'exemple sans autres explications.
Installons nous sur le pliant:
Menu dépliable peut-être, mais pas inoubliable.Je reviendrai lorsque des solutions seront trouvées...
Je reviens pour une amélioration:
Si vous avez tout suivi, les effets de dépliage fonctionnaient uniquement sous Chrome. j'ai cherché longuement le pourquoi; et je crois avoir trouvé:
Pour réaliser ces effets, il me faut sélectionner chaque sous-menu individuellement et leurs appliquer des valeurs de transform: et de transition: différents. Pour cela j'utilise les sélecteurs :nth-child() et :last-child que j'applique au bloc > sous-menu, pour nous #menu ul li ol li:nth-child(...) et #menu ul li:hover ol li:nth-child(...)
Et c'est là le problème, sous Firefox, certaines propriétés CSS3 comme perspective: ne fonctionne pas sur une liste si imbriquée. J'ai du simplifier le bloc > menu de ma page .html...
Quand au code .css que j'ai appliqué (et que vous pouvez consulter plus bas), il est proche de celui créé précédemment sauf... et je ne sais pas pourquoi, que les sélecteurs cités plus haut ne fonctionnant pas, j'ai utilisé :nth-of-type(.) ce qui nous donne des bloc > #new_menu li ol:nth-of-type(.) et #new_menu li:hover ol:nth-of-type(.) c'est pas simple, mais ça marche... du moins sous Chrome et Firefox dernière version.
Sous Opéra et Explorer les effets ne sont pas visibles; mais le menu reste fonctionnel.Pour réaliser ces effets, il me faut sélectionner chaque sous-menu individuellement et leurs appliquer des valeurs de transform: et de transition: différents. Pour cela j'utilise les sélecteurs :nth-child() et :last-child que j'applique au bloc > sous-menu, pour nous #menu ul li ol li:nth-child(...) et #menu ul li:hover ol li:nth-child(...)
Et c'est là le problème, sous Firefox, certaines propriétés CSS3 comme perspective: ne fonctionne pas sur une liste si imbriquée. J'ai du simplifier le bloc > menu de ma page .html...
Quand au code .css que j'ai appliqué (et que vous pouvez consulter plus bas), il est proche de celui créé précédemment sauf... et je ne sais pas pourquoi, que les sélecteurs cités plus haut ne fonctionnant pas, j'ai utilisé :nth-of-type(.) ce qui nous donne des bloc > #new_menu li ol:nth-of-type(.) et #new_menu li:hover ol:nth-of-type(.) c'est pas simple, mais ça marche... du moins sous Chrome et Firefox dernière version.