问题是,当我将浏览器窗口容器一一减少时,应该跳到下一行,并且在最小浏览器窗口宽度下,应该有一个列包含三个容器,一一对应,但这没有发生。取而代之的是,容器变得越来越小,并停留在一条直线上。我尝试使用最小宽度(甚至在代码中,我已经将其粘贴在这里:p)
body {
margin: 0;
padding: 0;
background-color: #2c3e50;
font-family: strait, sans-serif;
}
#box {
box-sizing: border-box;
margin: 0 auto;
display: flex;
min-width: 70vw;
height: 100vh;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.container {
min-width: 20vw;
height: 50vh;
flex-flow: column wrap;
border: 2px solid darkgray;
overflow: hidden;
background-color: #d9d9d9;
opacity: 0;
animation: slide-animation 1s forwards;
}
@keyframes slide-animation {
from {
opacity: 0;
margin-top: 300px;
}
to {
opacity: 1;
margin-top: 0;
}
}
<div id="box">
<div class="container"></div>
<div class="container"></div>
<div class="container"></div>
</div>
答案 0 :(得分:0)
由于您使用的是vw
单位,因此伸缩项的大小将始终是视口大小的百分比。如果项目中没有任何内容,则它们只能缩小到零。想要包装标准百分比或视口百分比长度的项目时会出现问题。
使用固定单位。
代替此:
min-width: 20vw
尝试一下:
min-width: 12em
body {
margin: 0;
padding: 0;
background-color: #2c3e50;
font-family: strait, sans-serif;
}
#box {
box-sizing: border-box;
margin: 0 auto;
display: flex;
min-width: 70vw;
height: 100vh;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.container {
min-width: 12em;
height: 50vh;
flex-flow: column wrap;
border: 2px solid darkgray;
overflow: hidden;
background-color: #d9d9d9;
opacity: 0;
animation: slide-animation 1s forwards;
}
@keyframes slide-animation {
from {
opacity: 0;
margin-top: 300px;
}
to {
opacity: 1;
margin-top: 0;
}
}
<div id="box">
<div class="container"></div>
<div class="container"></div>
<div class="container"></div>
</div>