動的にしたいと仮定すると、CSS3 列または JS (プラグインなど) に依存せずにそのようなレイアウトを複製する適切な方法はありません。
float と指定された幅を使用するという tbowman の提案は、アイテムの順序が異なる結果になります。
A B C
D E F
G
ただし、jquery を使用できれば、これは完全にうまく機能します。アイテムを並べ替える必要に応じて項目を列にラップします (ロジックはバニラ JavaScript で複製できます)。AJAX を使用してこのコンテンツを取得し、コンテンツを DOM に追加する前に列にラップして、煩わしいちらつきがないようにする場合のボーナス ポイントです。
var $container = $('#container'); //assuming this is the parent
var $content = $container.children();
var itemsPerColumn = (Math.ceil($content.length / 3));
for (var i = 0; i < 3; i++) {
$content.slice(i * itemsPerColumn, (i + 1) * itemsPerColumn)
.wrapAll('<div class="column" />');
}
比較のために遅延レンダリングをいじっています。何らかの理由でjsが失敗した場合、ページは「通常の」レイアウトで引き続き使用できます。