【发布时间】:2017-12-11 12:02:47
【问题描述】:
我目前正在学习 flex CSS 属性,我正在使用它来显示一堆 div,每行最多四个。这是它的 HTML 和 CSS:
.outer {
display: flex;
flex-wrap: wrap;
margin: -5% -5% 0 -5%;
}
.step {
text-align: center;
display: inline-block;
border: 2px solid black;
margin: 5% 5% 0 5%;
flex-grow: 1;
height: 100px;
width: 13%;
overflow: auto;
}
.child {
font-size: 1.25em;
}
<div class="outer" id="container">
<div class='step' id=step0>
<p class='child'> 1</p>
</div>
<div class='step' id=step1>
<p class='child'> 2</p>
</div>
<div class='step' id=step2>
<p class='child'>3</p>
</div>
<div class='step' id=step3>
<p class='child'> 4</p>
</div>
<div class='step error' id=step7>
<p class='child'>8</p>
</div>
<div class='step' id=step6>
<p class='child'>7</p>
</div>
<div class='step' id=step5>
<p class='child'>6</p>
</div>
<div class='step' id=step4>
<p class='child'>5</p>
</div>
<div class='step' id=step8>
<p class='child'>9</p>
</div>
<div class='step' id=step9>
<p class='child'>10</p>
</div>
</div>
css 的工作方式与我希望它在 Chrome 中的工作方式完全一致,但在 Firefox 中,不同行之间的垂直间隙为零,而在 Chrome 中则不然。我究竟做错了什么? (我也做了一个小提琴,https://jsfiddle.net/vLmnq7fL/2/。在 Chrome 和 firefox 中打开看看有什么不同)
【问题讨论】:
-
我会像在这里那样做:jsfiddle.net/vLmnq7fL/8。但是@LGSon 的回答几乎抓住了我要回答的本质。我只是为每个 step 使用了一个额外的包装器。