使用flex布局时经常会遇到元素个数不够导致最后一行错位的问题。
如果使用创建伪元素的方式解决可能又会遇到其他问题,特别是当justify-content设置为space-evenly时。
这时可以用另外一种方式,在最后一行增加几个假元素,数量为每一行最大数量减一,并设置height为0。
这种方式比较简单,不需要考虑margin的计算等问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
<style>
.container{
width: 800px;
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;
resize:both;
overflow:auto;
}
.item{
margin: 10px 0;
background-color: #88a6e2;
flex: 0 0 220px;
height: 100px;
}
.fake_item{
background-color: #52B948;
flex: 0 0 220px;
height: 0px;
}
</style>
</head>
<body>
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="fake_item"></div>
<div class="fake_item"></div>
</div>
</body>
</html>