我经常遇到这个问题,这通常会导致我花费更多时间来尝试解决问题。本质上,它是一个简单的布局,如下所示:
HTML:
<div id="container">
<div id="items">
<div class="item">
(data here)
</div>
<div class="item">
(data here)
</div>
<div class="item">
(data here)
</div>
<div class="item">
(data here)
</div>
-- repeats --
</div>
</div> <-- end container -->
CSS
#container {
margin: 0 auto;
width: 980px;
overflow: hidden;
}
#items {
float: left;
width: 980px;
min-height: 1000px;
}
#items .item {
float: left;
width: 230px;
height: 230px;
margin-right: 20px;
margin-bottom: 20px;
}
我的预期结果是有一个 4 x 4 网格显示项目。正如您从上面的 CSS 中看到的那样,我为每个项目添加了右边距,以便将它们隔开。唯一的问题是每行中的第四个项目下降到下一行(这显然是由于项目的右边距引起的):
(230 x 4) = 920 + (20 x 4) = 80 = 1000(但容器宽度为 980)。因此,我得到的不是每行 4 个项目,而是三个。
如果不包括每四个项目的右边距,则所有四个项目都完全符合父 DIV 的约束。我知道我可以为第四个项目添加一个单独的类并将其右边距设置为 0px 但这意味着我必须在动态显示产品时在我的脚本中添加额外的检查。
理想情况下,我想要一个在所有主要浏览器和 IE7 中都能正常工作的纯 CSS 解决方案。有人知道吗?