【发布时间】:2021-02-28 00:39:40
【问题描述】:
我正在尝试创建一个基于 flex 的容器,其中项目应该在悬停时通过动画展开。所有项目首先应具有相同的宽度,具体取决于容器的总宽度。悬停项目时,悬停的项目应正好是容器总宽度的 50%,其余未悬停的项目将缩小以填充剩余空间。
这似乎是一件很容易做到的事情,但我无法真正理解如何实现我想要的结果。
我试过这个代码:https://codepen.io/tobiasger/pen/xxRWxpV
.flex-container {
width:100%;
display:flex;
height:300px;
}
.flex-item {
flex:1;
transition: all 0.4s ease;
}
.flex-item:hover {
flex-basis:50%;
}
但flex-basis 不会导致容器的 50%。我不确定它的百分比是基于什么,它似乎比实际容器宽度更接近窗口宽度。
我还尝试将 50% 的 min-width 值应用于悬停的项目,但这似乎无法制作动画。
目标是不必根据容器包含的项目数为容器创建特定的类。如果可以始终强制悬停的项目恰好是容器宽度的 50%,同时让其余项目平均填充剩余的 50%,并且还可以为这种宽度变化设置动画,我会非常高兴!
【问题讨论】:
-
你试过 width:50% 吗?