height 0 到 auto 的动画效果
在以前实现这种效果需要借助 js 的来计算实际高度,现在可完全使用 css 实现,只要浏览器兼容(目前大部分浏览器都已兼容)
使用 flex
.wrapper {
display: flex;
transition: 0.3s;
}
.inner {
max-height: 0;
overflow: hidden;
}
.wrapper:hover .inner {
max-height: 100%;
}
<div class="wrapper">
<div>
<div class="inner">...</div>
</div>
</div>
示例
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本
使用 grid
推荐使用这种方法。flex 的实现,父元素的高度没有过渡
.flex {
display: grid;
transition: 0.3s;
grid-template-rows: 0fr;
}
.inner {
overflow: hidden;
}
.flex:hover {
grid-template-rows: 1fr;
}
<div class="flex">
<div class="inner">...</div>
</div>
示例
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本
这是一段文本