html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>flex</title>
</head>
<style>
.parent {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
align-content: space-evenly;
/* align-items: center; */
width: 550px;
height: 550px;
/* height: 500px; */
background-color: aqua;
}
.children {
flex-shrink: 0;
flex-grow: 0;
width: 100px;
height: 100px;
background-color: burlywood;
}
.empty {
width: 100px;
/* height: 0px; */
opacity: 0;
}
</style>
<body>
<div class="parent">
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="children"></div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
</div>
</body>
</html>
开发中经常会遇到多行多列的情况,一般都是要求每行都是两头在最边上,中间均匀分布的情况。这种情况使用flex的一般都会用到justify-content: space-between;
,但是这种不适合用在多列的情况。
解决这个问题也很简单就是补位就行了补了几个
<div class="empty"></div>
这样就可以拉。注意要把这个补位的样式宽度要设置一样的,并且高度设置0或者设置透明。
这种多行多列的还可以用grid布局。我这个只是提供一个思路。