transition不会产生效果 height:auto

摘要:假设一个DIV要实现手风琴效果,展开时根据内容自适应高度即从height: (any)px; 变化到 height: auto;此时设置transition不会产生效果, 原因是 transition 无法将 ()px 变为不是具体数值的 auto

假设一个DIV要实现手风琴效果,展开时根据内容自适应高度即从height: (any)px; 变化到 height: auto;此时设置transition不会产生效果,   原因是 transition 无法将 ()px 变为不是具体数值的 auto


解决方法:

在两种状态下分别设置max-height,且自适应高度状态下时max-height设置为不可能超过的数值

.menu-list{
    position: absolute;
    z-index: 2;
    left:0;
    right: 0;
    top:48px;
    height:auto;
    max-height:20rem;   //1这里
    overflow: hidden;
    background-color:rgba(255,255,255,1);
    transition:all 0.3s cubic-bezier(0.4, 0, 1, 1); 
    visibility:visible
}
.menu-list.hide{
    height:0px;
    max-height:0;//2这里
    visibility: hidden;
}

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_9535