在 3 行网格中浮动 div,中间行顶部偏移
floated divs in 3-a-row grid, middle row with top offset
我如何根据所附图片实现此目的?
如您所见,我向左浮动了等宽块,但我希望中间行与左右行相比有一点偏移。
是否可以仅使用普通 css、flexbox?还是我必须使用砖石之类的东西?
我尝试对中间行的每个块应用上边距,但这不起作用:
.block {
background-color:red;
height:200px;
width:33.333%;
border:1px solid black;
float:left;
box-sizing: border-box;
}
.block:nth-child(3n+2) {
margin-top:10px;
background:blue;
color:white;
}
您可以使用 Flexbox
而不是浮点数。
.block_wrap {
display: flex;
flex-wrap: wrap;
}
.block {
background-color: red;
height: 200px;
flex: 0 0 calc(33.333% - 20px);
border: 1px solid black;
box-sizing: border-box;
margin: 0 10px;
}
.block:nth-child(3n+2) {
margin-top: 10px;
background: blue;
color: white;
}
<div class="block_wrap">
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<div class="block">4</div>
<div class="block">5</div>
<div class="block">6</div>
<div class="block">7</div>
<div class="block">8</div>
</div>
我如何根据所附图片实现此目的?
如您所见,我向左浮动了等宽块,但我希望中间行与左右行相比有一点偏移。
是否可以仅使用普通 css、flexbox?还是我必须使用砖石之类的东西?
我尝试对中间行的每个块应用上边距,但这不起作用:
.block {
background-color:red;
height:200px;
width:33.333%;
border:1px solid black;
float:left;
box-sizing: border-box;
}
.block:nth-child(3n+2) {
margin-top:10px;
background:blue;
color:white;
}
您可以使用 Flexbox
而不是浮点数。
.block_wrap {
display: flex;
flex-wrap: wrap;
}
.block {
background-color: red;
height: 200px;
flex: 0 0 calc(33.333% - 20px);
border: 1px solid black;
box-sizing: border-box;
margin: 0 10px;
}
.block:nth-child(3n+2) {
margin-top: 10px;
background: blue;
color: white;
}
<div class="block_wrap">
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<div class="block">4</div>
<div class="block">5</div>
<div class="block">6</div>
<div class="block">7</div>
<div class="block">8</div>
</div>