【发布时间】:2020-02-26 11:06:23
【问题描述】:
当悬停一个 flex 元素时,我现在将 flex-basis 设置为 100%。在执行此操作时,所有兄弟姐妹的宽度都会调整为 0(我认为),这会在动画中显示。
是否有可能(最好只使用 css)让这些兄弟姐妹保持它们的宽度(兄弟姐妹的 nr 是可变的,所以在某些情况下会有比下面的示例更多的列)而悬停的元素扩展为 100%宽度?这样看起来好像它们是从容器中推出的,而不是调整为 0 的宽度。
现在的工作方式如下:https://jsfiddle.net/luffyyyyy/y8p9g2bs/8/
.container {
width: 100vw;
height: 60vh;
display: flex;
align-items: stretch;
overflow: hidden;
}
.day-container {
flex: 1;
display: flex;
flex-direction: column;
transition: flex-basis 1000ms ease-in-out;
}
.day-container:hover {
flex-basis: 100%;
}
【问题讨论】:
-
你试过
transform:scale()??。尝试将flex-basis替换为 ` -webkit-transform: scale(9, 1);` -
嗨 Akhil,我之前确实试过这个。这使得悬停的日间容器重叠/忽略它的兄弟姐妹,所以它们留在原处。不是我想要的效果。
-
@awsome-o 您需要将
transition:.5s添加到.day-container和.day-container:hover{}以获得平滑的效果。你试过了吗 -
@AkhilAravind 这不是关于效果是否平滑,而是/足够平滑。当您查看小提琴时,您会在悬停其中一列时看到其他列将折叠(调整为 0px 的宽度)。现在我想要的是其他列不会折叠,而是在保持宽度的同时移出视野。希望这是有道理的。
-
@Awesom-o 您是否希望其他元素以相同的宽度保持在相同的位置?或者您想将它们移出其他位置但宽度相同的视图?
标签: css flexbox transition