【发布时间】:2012-10-06 05:17:41
【问题描述】:
我正在为一个网站做一个网格系统。标记看起来像这样
<div class="section">
<div class="grid">
</div>
<div class="grid">
</div>
<div class="grid">
</div>
<div class="grid">
</div>
</div>
<div class="section">
<div class="grid">
</div>
<div class="grid">
</div>
<div class="grid">
</div>
</div>
类网格的宽度为 33.3333333333%。
我想在每次网格总和达到 100 或接近 100% 时插入一个 div。这样标记看起来像这样
<div class="section">
<div class="grid">
</div>
<div class="grid">
</div>
<div class="grid">
</div>
<div class="clear"></div> <!-- inserted div -->
<div class="grid">
</div>
</div>
<div class="section">
<div class="grid">
</div>
<div class="grid">
</div>
<div class="grid">
</div>
<div class="clear"></div> <!-- inserted div -->
</div>
这是我目前所拥有的。我的包装器最大宽度为 972 像素
var grid = $('.grid');
var wrapper = $('.wrapper').width();
$(grid).each(function () {
var gridWidth = $(this).width();
var percentage = (gridWidth / wrapper)*100;
console.log(percentage);
});
谁能帮帮我?
编辑: 我添加了一个截图,所以你可以看到这个问题。第四个元素有一个左边距,这是不应该的。这就是为什么我要添加一个明确的
【问题讨论】:
-
如果每个网格元素浮动并具有相同的宽度,这不会自行排序。第四个元素将不适合,并将落在其他行下方的单独行上。鉴于您在包装器上有固定宽度。或者我在这里错过了什么?或者你对
clear类做的事情比清除浮动更多吗? -
原因是在网格内我有一个 div 元素,左边有边距。使用一些 CSS,我声明第一个元素不应留有边距。当第四个元素下降时,由于浮动,它有一个左边距。因此,如果有一个明确的标签,我会知道何时设置另一个 margin-left: 0