元素高度是按内容自动撑开的,如何用transition过渡动画实现高度从0到当前元素高度的变化

发布于 2022-09-05 09:59:55 字数 186 浏览 6 评论 0

元素高度是按内容自动撑开的,如何用transition过渡动画实现高度从0到当前元素高度的变化

height: 0;
transition: all 1s linear;
height: 100px;

后面的100px不是固定的,是元素当前的高度,不用js获取高度的话,纯css有办法实现吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

北斗星光 2022-09-12 09:59:55

这个问题实际等同于:用CSS实现由height:0height:auto的渐变

height:auto实际并不是一个具体的值,浏览器在执行该动画时还未取到实际值,因此没有渐变的效果;

解决方案:
1,用js获取其实际值,执行动画;

2,【缺陷】用max-height代替heightmax-height设置一个足够大的值,如由max-height:0max-height:1000px;此时动画会按照0到1000px渐变,视觉效果不好

动次打次papapa 2022-09-12 09:59:55

用transform:scaleY(0);模拟如何,对老IE不友好

木緿 2022-09-12 09:59:55

我也一直想知道这个问题。之前没有解决,所以都是用jquery的slideToggle()来做。

孤芳又自赏 2022-09-12 09:59:55

可以参考一下这个 https://blog.csdn.net/shi8510...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文