关键点
横向flex布局嵌套多列纵向flex 布局
- 使用
flex-basis
定义每一列宽
代码
html
<div class="container">
<div class="queue">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="queue">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="queue">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="queue">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
scss
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
overflow: hidden;
}
.queue {
display: flex;
flex-direction: column;
flex-basis: 24%;
}
.item {
position: relative;
width: 100%;
margin: 2.5% 0;
}
// 随机生成内容
$lineCount: 4;
$count: 3;
@function randomNum($max, $min: 0, $u: 1) {
@return ($min + random($max)) * $u;
}
@function randomColor() {
@return rgb(randomNum(255), randomNum(255), randomNum(255));
}
@for $i from 1 to $lineCount + 1 {
.queue:nth-child(#{$i}) {
@for $j from 1 to $count + 1 {
.item:nth-child(#{$j}) {
height: #{randomNum(300, 50)}px;
background-color: randomColor();
&::after {
content: "#{$j}";
position: absolute;
color: #fff;
font-size: 24px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
}
}