.container {
display: flex;
width: 200px;
overflow: hidden; /* hides the flex item parked outside the container */
cursor: pointer;
border: 1px solid black;
}
.element {
height: 100px;
flex: 0 0 100%; /* can't grow, can't shrink, fixed an 100% width */
transition: .5s;
min-width: 0; /* override min-width: auto default;
https://dev59.com/mVoV5IYBdhLWcg3wc-Ym */
}
.container:hover > .element:first-child {
flex-basis: 0;
}
.element:first-child { background-color: lightgreen; }
.element:last-child { background-color: orange; }
<div class="container">
<div class="element">Normal</div>
<div class="element">Hover</div>
</div>
transform: translate
会表现更好,不会挤压第一个子元素 并且 在IE中也可以正常工作 :) ... https://jsfiddle.net/o2bx6bf9/ - Asonsheight: 100px
只是为了演示目的。 如 @LGSon 所述,在 flex 布局中,项目通常会接收大小调整。 但是,再次强调,这只是一个简单的演示。 如果您想要,请使用容器来设置尺寸。 - Michael Benjamin