Она добивается этого, позиционируя коробки абсолютно.
Но вы можете достичь этого с помощью очень простого CSS, при условии, что вы можете контролировать порядок, в котором элементы отображаются.
Вы должны сгруппировать их в столбцы (и не в строках, как обычно), но он работает как шарм.
Используйте HTML так:
<span class="column">
<div class="box">number 1<br />with two lines</div>
<div class="box">number 4</div>
<div class="box">number 7<br />with two lines</div>
</span>
<span class="column">
<div class="box">number 2</div>
<div class="box">number 5<br />with two lines<br />or even three<br />or four!</div>
<div class="box">number 8</div>
</span>
<span class="column">
<div class="box">number 3</div>
<div class="box">number 6</div>
<div class="box">number 9</div>
</span>
И CSS так:
.column {
clear: left;
width: 25%;
display: inline-block;
vertical-align: top;
}
.box {
border: solid 1px blue;
}
Протестируйте его на JSFiddle.net .
Используйте span
для столбцов, поскольку IE7 не принимает display: inline-block;
для элементов, которые естественным образом блокируют элементы.(Мех.)