【发布时间】:2015-03-25 01:25:19
【问题描述】:
我有以下 HTML:
<div id="parent">
<div class="child">Box1</div>
<div class="child">Box2</div>
<div class="child">Box3</div>
<div class="child">Box4</div>
<div class="child">Box5</div>
<div class="child">Box6</div>
<div class="child">Box7</div>
<div class="child">Box8</div>
<div class="child">Box9</div>
<div class="child">Box10</div>
</div>
还有以下 CSS:
#parent {
display: inline-block;
max-width: 1000px;
height: 500px;
border: 1px solid #000000;
text-align: center;
}
.child {
width: 100px;
height: 100px;
border: 1px solid #000000;
margin: 10px;
float: left;
}
我想将子 DIV 向左浮动,同时将它们置于没有固定宽度的父 DIV 中。
我不想对子 DIV 使用 display: inline-block 的原因是,如果一行只有 1 或 2 个框,它们将居中,我希望它们与框左对齐在前几行。
第二个原因是使用 ajax 会加载更多数据。因此,如果最后一行只有 1 或 2 个盒子并且仍然可以容纳更多盒子,它们将被插入新行而不是附加到最后一行。我不确定这一点,但我认为使用显示内联块时会发生什么。 Float 没有这种行为。
忘了提到父级应该是 display: inline-block 因为另一个框会在它旁边对齐。
我创建了一个小提琴供你玩: http://jsfiddle.net/6a2eqpmu/
【问题讨论】:
-
@Pete 我去年解决了一个类似的问题,确实,您需要一个 JS 辅助解决方案。问题的症结在于,一旦元素浮动,元素就不再影响计算父宽度的宽度。你有一个解决方案,你也可以发布它。