2013-05-13 35 views
3

我想弄清楚,如果它的所有可能有方形div与流体同位素布局。我有一个4列的网格,每个div是容器的24%宽度,但我希望这些div是完美的方格,我无法弄清楚如何实现这一点。
这里有一个工作的jsfiddle演示:http://jsfiddle.net/RJZu6/8/
的jQuery:jQuery/css:液体响应同位素网格与方格

var $container = $("#main-grid"); 

var size = function() { 
    $container.isotope({ 
     masonry: { 
      columnWidth: $container.width()/4 
     } 
    }); 
} 

$container.imagesLoaded(function() { 
    $container.isotope({ 
     itemSelector: ".grid-block", 
     animationEngine: "jquery", 
     sortBy: "random", 
     resizable: false, 
     masonry: { 
      columnWidth: $container.width()/4 
     } 
    }); 

    size(); 
}); 

$(window).smartresize(size); 

CSS:

#main-grid { 
    position: absolute; 
    width: 100%; 
} 

.grid-block { 
    width: 24%; height: 50px; 
    margin-left: 0.25%; margin-right: 0.25%; 
    margin-bottom: 5px; 
    background: no-repeat 50% 50%; 
    -webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
} 

流动性和功能性的作品很好,我现在遇到的麻烦的div的只是尺寸。它完全有可能具有完美的方形响应div吗?

回答

7

根据你内部的内容,你可以很容易地实现流体正方形使用 padding-bottom;

例如

width: 50%; 
height: 0; 
padding-bottom: 50%; 

所以this updated fiddle一切,我改变了的grid-lock

.grid-block { 
    width: 24%; 
    margin-left: 0.25%; margin-right: 0.25%; 
    margin-bottom: 5px; 
    background: no-repeat 50% 50%; 
    -webkit-background-size: cover; 
    -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
    padding-bottom:24%; 
} 

Here's an example of square elements in a page

的CSS

Here's more information about the technique.

+0

啊这是完美的,感谢您的!尽管有一件事,我将在div内垂直和水平放置一些文本。我猜这可能相当困难? – user1374796 2013-05-14 07:02:30

+0

@ user1374796 2周前我必须做同样的事情。我没有找到一个简单的方法来垂直居中,并有一个流体方形网格。我最终做的是将一切都集中在广场上,用jQuery来调整容器的高度。我会为你准备一把小提琴。 – 2013-05-14 13:01:01

+0

@ user1374796这里是我承诺的小提琴:http://jsfiddle.net/7MUSB/1/我不确定它在IE7中的作用,但它在其他地方起作用。干杯。 – 2013-05-14 13:09:40