Transition entre open close dans l'élément details
Est-il possible d'animer la transition entre l'état ouverture/fermeture de la <details>
élément avec juste le CSS?
source d'informationauteur olanod
Vous devez vous connecter pour publier un commentaire.
non, pas actuellement.Oui, mais seulement si vous connaissez leheight
ou animer lesfont-size
.À l'origine, ce n'était pas le cas. De http://html5doctor.com/the-details-and-summary-elements/"...si vous pouviez utiliser les transitions CSS pour animer l'ouverture et de la fermeture, mais nous ne pouvons pas tout de suite. (Il y a un commentaire à HTML5 médecin près de la fin, mais il semble que ce besoin de JS pour forcer le CSS animation.)
Il était possible d'utiliser des styles différents, selon qu'elle est ouverte ou fermée, mais les transitions ne sont pas "prendre" normalement. Aujourd'hui, cependant, les transitions ne travail si vous connaissez la
height
ou animer lesfont-size
. Voir http://codepen.io/morewry/pen/gbJvy pour des exemples et plus de détails.C'était la 2013 solution de ce genre de faux:
CSS (Peut-être besoin d'ajouter des préfixes)
HTML
Cela fonctionne aujourd'hui:
CSS (Peut-être besoin d'ajouter des préfixes)
PS:
testé Uniquement dans le navigateur Chrome. Entendre FF n'est toujours pas en chargeIE et le Bord n'est pas toujours le soutiendetails
en général.details
.(Vous pouvez utiliser les animations d'images clés ou des transitions de faire toutes sortes d'autres animations pour les ouvrir. J'ai choisi
fadeInDown
à des fins d'illustration seulement. C'est un choix raisonnable qui vous donnera une sensation semblable si vous ne parvenez pas à ajouter de la majoration ou ne connaissent pas la hauteur du contenu. Vos options sont, cependant, ne se limite pas à cela: voir les commentaires sur cette réponse qui comprennent deux alternatives, y compris lafont-size
approche.)Compte tenu de la hauteur a pour composant logiciel enfichable à un certain point, je préfère commencer à animer la hauteur puis en composant logiciel enfichable. Si votre assez chanceux pour avoir tous les éléments d'une même hauteur que cette solution peut être très efficace. (vous avez besoin d'une div à l'intérieur de votre détails des éléments de tout de même)
voir http://dabblet.com/gist/5866920 par exemple
Bien sûr, c'est possible: