我有一堆3列布局的盒子/块。这些框使用类似float: left, width: 33%的样式,但是它们的高度不同。

我如何使之成为可能,以便它们始终填充“行”列之间的空隙(因此,第4面板将在第1面板的正下方,而在它们之间没有任何空隙)。

例:

<style>
.testpanel { width: 33%; border: 1px solid black; float:left;}
</style>
<div class="testpanel">
    Panel 1
</div>
<div class="testpanel">
    Long Panel 1
    <br /><br /><br />
</div>
<div class="testpanel">
    Long Panel 2
    <br /><br /><br />
</div>
<div class="testpanel">
    Panel 4
</div>


我要关闭第1面板和第4面板之间始终存在差距。是否可以在CSS中完全不使用http://gridster.net/之类的js库来完成此操作?

我知道如何在静态布局中做到这一点(通过填充每列的内容),但是我将动态生成/删除面板,所以我不想将它们绑定到特定的列。

引导程序版本:http://jsfiddle.net/WhKLj/1/

最佳答案

您的html并不是进行pinterest布局的正确方法。
而不是对每个单独的元素使用float:left
使用三列div

HTML:

<div class="column" id="left">
    <div class="testpanel"></div>
    <div class="testpanel"></div>
    <div class="testpanel"></div>
</div>
<div class="column" id="center">
    <div class="testpanel"></div>
    <div class="testpanel"></div>
    <div class="testpanel"></div>
</div>    <div class="column" id="right">
    <div class="testpanel"></div>
    <div class="testpanel"></div>
    <div class="testpanel"></div>
</div>


CSS:

.column{
  float:left;
}
.testpanel{
  margin-bottom::10px;
}


这样做可以,但是问题是您必须使用javascript / jquery将新的div.testpanels添加到每个列中。

希望这可以帮助!

关于jquery - 在没有间隙/行的列中排列div块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22792790/

10-12 06:43