目前我正在开发一个网站,其中包含多个这些平铺系统,您可以在下面看到。
我想知道哪种方式最好对它们进行编码。
我使用的是非常好的Masonry,但它是一个基于jQuery的解决方案。 http://jsfiddle.net/xfxYQ/
HTML
<div class="box-container">
<article class="box span-1x1">1</article>
<article class="box span-1x1">2</article>
<article class="box span-2x2">3</article>
<article class="box span-1x1">4</article>
<article class="box span-1x1">5</article>
<article class="box span-2x2">6</article>
<article class="box span-1x1">7</article>
<article class="box span-1x2">8</article>
<article class="box span-1x1">9</article>
</div>
CSS
.box-container {
width: 240px;
margin-bottom: 50px;
background: blue;
}
.box {
float: left;
margin-bottom: 10px;
margin-right: 10px;
background: red;
}
.span-1x1 {
width: 50px;
height: 50px;
}
.span-1x2 {
width: 50px;
height: 110px;
}
.span-2x1 {
width: 110px;
height: 50px;
}
.span-2x2 {
width: 110px;
height: 110px;
}
Masonry jQuery
var $container = $('.box-container');
$container.masonry({
itemSelector: '.box'
});
有没有人对纯HTML / CSS解决方案有明智的想法?
答案 0 :(得分:0)
有很多CSS网格框架,旨在创建这样的东西。
960.gs 也是一个基于CSS的网格框架。它没有Javascript,所以你可以看看 在它的架构上甚至使用那个。
如果你想要一些动画或某些东西,你可以使用CSS3为它制作动画,如果你真的没有 想在其中使用任何Javascript(我也不愿意)。
祝你好运。答案 1 :(得分:0)
您肯定必须将HTML分解为列。基本上这将需要重写HTML相当多。例如,在此jsFiddle中:
<div class="box-container cf">
<div class="column">
<div class="box span-1x2">0</div>
</div>
<div class="column">
<div class="box span-1x1">1</div>
<div class="box span-1x1">2</div>
</div>
<div class="column">
<div class="box span-2x2">3</div>
</div>
</div>