请告诉我如何使用 flex 排列元素以获得此结果:
我的代码:
.img {
width: 800px;
height: 800px;
background: grey;
margin: 0 auto;
}
.img-block-1 {
width: 100%;
display: flex;
padding: 20px;
}
.img-block-item-1 {
width: 117px;
height: 70px;
background: red;
}
.img-block-item-2 {
background: red;
width: 141px;
height: 77px;
}
.img-block1-item {
width: 98px;
height: 98px;
background: red;
}
.img-block2-2-item {
width: 78px;
height: 78px;
background: red;
}
.img-block-2 {
display: flex;
}
.img-block2-3-item {
width: 156px;
height: 88px;
}
.img-block3-1-item {
width: 92px;
height: 115px;
background: red;
}
.img-block3-2-item {
width: 177px;
height: 33px;
background: red;
}
.img-block3-3-item {
width: 179px;
height: 36px;
background: red;
}
.img-block-3 {
display: flex;
}
<div class="img">
<div class="img-block-1">
<div class="img-block-item-1">
</div>
<div class="img-block-item-2">
</div>
</div>
<div class="img-block-2">
<div class="img-block1-item">
</div>
<div class="img-block2-2-item">
</div>
<div class="img-block2-3-item">
</div>
</div>
<div class="img-block-3">
<div class="img-block3-1-item">
</div>
<div class="img-block3-2-item">
</div>
<div class="img-block3-3-item">
</div>
</div>
</div>
这是一个给你的例子。底线是您可以减少 div 的数量并且不制作包装块(第 7 和第 8 除外):
一切都建立在
flex
-container 的基本属性之上。您应该熟悉 CSS Flexbox 属性以供将来参考。另请阅读有关将类分配给 HTML 元素的文章。有不同的技术 - BEM、继承和其他。MDN 上的 CSS Flexbox Flexbox BEM
完整指南
一般来说,已经很可能使用网格: