css - 如何在css中进行过渡
问题描述
.container {
display: flex;
}
.item {
width: 150px;
border: 6px solid red;
height: 145px;
overflow: hidden;
transition: 1s;
}
.item:hover {
height: 100%;
}
.footer__item {
background: blue;
}
<div class="container">
<div class="item">
<div class="item__data">
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam repudiandae debitis omnis itaque. Dolores quasi aliquid temporibus corporis mollitia sint.
</div>
<div class="footer">
<div class="footer__item">test</div>
<div class="footer__item">test</div>
</div>
</div>
</div>
<div class="item">
<div class="item__data">
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam repudiandae debitis omnis itaque. Dolores quasi aliquid temporibus corporis mollitia sint.
</div>
<div class="footer">
<div class="footer__item">test</div>
<div class="footer__item">test</div>
<div class="footer__item">test</div>
<div class="footer__item">test</div>
</div>
</div>
</div>
</div>
我想要,当我将鼠标悬停在我想要应用的项目时height: 100%;
。下一个问题是:当我现在悬停时,不会应用过渡,但是如果我将高度从 更改为100%
,250px
那么过渡是否有效?为什么?以及如何为 100% 高度应用过渡?
解决方案
浏览器不支持计算动态元素的高度(通常称为reflow)。阅读这篇参考文章https://css-tricks.com/using-css-transitions-auto-dimensions/。
试试下面的代码
.container {
display: flex;
transition: all 3s;
}
.item {
width: 150px;
transition: all 3s;
}
.content {
height: 100%;
border: 6px solid red;
}
.footer {
height: 100%;
transform: scaleY(0);
transform-origin: top;
transition: transform 0.3s ease-out;
overflow: hidden;
}
.item:hover .footer {
transform: scaleY(1);
}
.footer__item {
background: blue;
}
<div class="container">
<div class="item">
<div class="item__data">
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam repudiandae debitis omnis itaque. Dolores quasi aliquid temporibus corporis mollitia sint.
</div>
<div class="footer">
<div class="footer__item">test</div>
<div class="footer__item">test</div>
</div>
</div>
</div>
<div class="item">
<div class="item__data">
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam repudiandae debitis omnis itaque. Dolores quasi aliquid temporibus corporis mollitia sint.
</div>
<div class="footer">
<div class="footer__item">test</div>
<div class="footer__item">test</div>
<div class="footer__item">test</div>
<div class="footer__item">test</div>
</div>
</div>
</div>
</div>
推荐阅读
- python - 错误:错误:OpenCV(3.4.1) resize.cpp:4044: 错误:(-215) ssize.width > 0 && ssize.height > 0 in function cv::resize
- html - 单击时未检查自定义单选按钮
- orientation - CameraX VideoCapture 方向与 ImageCapture 方向不一致
- python - * 不支持的操作数类型:'function' 和 'int'
- python - 使用 Pandas 从 excel 中删除行
- web-applications - 带有私人网络应用的 Google 助理交互式画布
- machine-learning - Pytorch 变压器模型中的大的爆炸性损失
- reactjs - create-react-app npx WARN 旧锁文件错误
- php - 如何在 Laravel 应用程序中保留一个简单的 PHP 应用程序?
- laravel - 如何在不刷新或重新提交 Laravel 速率限制中的表单的情况下实时更新以秒为单位的节流时间