QQ扫一扫联系
在 CSS 中,从 height: 0 到 height: auto 的转变不能通过动画实现,这是因为 height: auto 的高度是根据元素内容的实际高度自动计算的,而不是在 CSS 中预定义的值,所以不能在动画中使用。
要解决这个问题,可以考虑使用其他的解决方案,例如:
① 使用 max-height 属性:将元素的 max-height 属性设置为一个足够大的值,然后将 height 属性从 0 变为 max-height,这样可以实现高度从 0 到实际高度的过渡动画。
.element { max-height: 0; transition: max-height 0.3s ease-out; } .element.open { max-height: 500px; /* 设置一个足够大的值 */ transition: max-height 0.3s ease-in; }
② 使用 transform 属性:将元素的 transform 属性从 scaleY(0) 变为 scaleY(1),同时设置 transform-origin 为 top,这样可以实现高度从 0 到实际高度的过渡动画。
.element { transform-origin: top; transform: scaleY(0); transition: transform 0.3s ease-out; } .element.open { transform: scaleY(1); transition: transform 0.3s ease-in; }
这些方法都可以实现高度从 0 到实际高度的过渡动画,可以根据实际情况选择其中一种来解决问题。