我正在尝试创建类似于砌体的列,而不必加载另一个JS插件。

我的HTML看起来像这样

<div class="masonry">
    <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
    <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
    <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
    <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p> <a href="" class="">texttexttexttexttexttext</a>

        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
        <div class="item">
        <p class="item__par">texttexttexttext</p>
        <div class="item--inner">
            <p>itemitemitemitemitemitemitemitemitem</p>
        </div>
    </div>
</div>


CSS:

.masonry {
    -moz-column-count:3;
    -webkit-column-count:3;
    column-count: 3;
}
.item {
    width: 273px;
    border:1px solid black;
    background: lightgray;
    display:inline-block;
    vertical-align:top;
    margin-right:50px;
    margin-bottom:50px;
}


不知道原因,但按列计数似乎不起作用。第二行的最后一个元素向下拉,而不是浮动到第二行的右侧。

更新:当块的高度相等时,会发生这种情况。当我更改内容时,列开始在水平方向上工作

请查看小提琴以获取更多信息,并分享您的经验。

http://jsfiddle.net/frontDev111/7Lcrt8kq/

最佳答案

这些列垂直堆叠,而不是水平堆叠。因此:

item1  item4  item7

item2  item5

item3  item6


您只需删除column-count属性即可实现所需的行为:http://jsfiddle.net/zephod/n42sqd4v/1/

编辑:如果您想要完整的砌体行为,我的建议是使用jQuery Masonry插件。它不仅涵盖了您可能会错过的许多优势案例,而且还在广泛的Web浏览器中进行了全面测试,并且您需要一个非常有力的理由来重新发明该轮子。

10-07 21:27