CSS:重新排列div元素

时间:2012-09-05 09:42:12

标签: jquery html css

我在容器中有多个<div>标记,但widthheight不同。当浏览器resized<div>元素重新排列时,它们之间会有很多空格。例如,以下HTML:

<div class="wrap">
    <div class="box">
        This has less height
    </div>
    <div class="box">
        This has more height
    </div>
    <div class="box">
        This has less height.
    </div>
</div>

现在当浏览器调整大小时,最后一个div将移动到第一个div下方的左侧,但是它们之间有空的空间,因为中间div有更多的高度。请看图片。

enter image description here 是否可以使用纯CSS安排这些div?我找不到方法,所以我尝试了jQuery masonry plugin,它运行正常,但问题是它通常不会很快响应(例如,当你第一次打开页面时,布局完全搞砸了,但如果你刷新页面就可以了。)

因此,如果仅使用CSS无法实现,有没有办法让它在没有复杂插件的情况下工作(例如仅使用jQuery?)

的jsfiddle: http://jsfiddle.net/HS2Zh/

2 个答案:

答案 0 :(得分:1)

如果你的任务是删除间隙,可以使用此代码删除它

            var h = 0;
            $('.box').each(function() 
            { 
                h = Math.max(h, $(this).height()); 
            }).height(h);

它将为所有.box类

指定唯一高度(.box的最大高度)

答案 1 :(得分:0)

这可以通过使用jquery masonry插件来完成。希望此链接可以帮助您http://masonry.desandro.com/

如果你已经使用了这个插件,那么试着在这些块之间留出一些空隙,这样它就会有自由空间流动