【发布时间】:2015-06-27 03:06:44
【问题描述】:
我有多个项目组织在多列和多行中
<div class="items">
<div class="item-1">
<div class="item-2">
<div class="item-3">
<div class="item-4">
<div class="item-5">
...
</div>
我正在使用 jQuery 向下滑动来显示单击时每个项目的隐藏内容。我想正确推送底部内容,即扩展对象所属的同一列。
基本浮动示例:左和宽度:33%
http://jsfiddle.net/kurtko/4w8n1frr/
我尝试了几种方法:
1) 使用带有 float:left 的列,然后使用 PHP 插入更改顺序的项目。从:1,2,3,4,5,6,7,8,9 到 1,4,7,2,5,8,3,6,9。
http://jsfiddle.net/kurtko/adLL8gmn/
<div class="items">
<div class="column>
<div class="item-1">
<div class="item-4">
<div class="item-7">
</div>
<div class="column>
<div class="item-2">
<div class="item-5">
<div class="item-8">
</div>
</div>
这是一个很好的方法,但是当我使用带有一列的响应版本时,顺序不正确。
2) 砌体。 Masonry - Isotope 有一个名为“masonryColumnShift”的自定义布局模式,但在当前版本 2 中已禁用。
http://isotope.metafizzy.co/v1/custom-layout-modes/masonry-column-shift.html
3) 弹性盒。使用:
http://jsfiddle.net/kurtko/7cu5jvrr/
.items {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-start;
}
.item {
width: 33.3%;
}
效果不错,但并不完美。当一个项目改变其高度时,行下方会创建一个空白。
有什么想法吗?
谢谢。
【问题讨论】:
-
使用思路1)根据窗口宽度放置div类列
标签: jquery css flexbox masonry