最終更新
これは、 JSを使用して、残りの位置(単純な計算)とCSS遷移を設定するための完全に機能するソリューション(私の意見では非常に簡単です)です。
 http://jsfiddle.net/gaby/pYdKB/3/でのデモ
流動性を維持し、float:left任意の数の要素で機能します。また:nth-child、スタイリングを維持できます。また、複数の要素を表示したままにする場合にも機能します。
javascript
var wrapper = $('.wrapper'),
    boxes = wrapper.children(),
    boxWidth = boxes.first().outerWidth(true),
    boxHeight = boxes.first().outerHeight(true); 
function rePosition(){
    var w = wrapper.width(),
        breakat = Math.floor( w / boxWidth ); // calculate fluid layout, just like float:left
    boxes
        .filter(':not(.go)')
        .each(function(i){
            var matrixX = ((i)%breakat)+1,
                matrixY = Math.ceil((i+1)/breakat);
            $(this).css({
                left:(matrixX-1) * boxWidth ,
                top: (matrixY-1) * boxHeight
            });
        });
}
$('.box').click(function(){
    $(this)
        .siblings()
        .toggleClass('go');// just add the go class, and let CSS handle the rest
    rePosition(); // recalculate final positions and let CSS animate the boxes
});
$(window).resize(rePosition);
$(window).trigger('resize');
CSS
.wrapper{
    position:relative;
}
.box{
    width:200px;
    height:100px;
    position:absolute;
    margin:5px;
    cursor:pointer;
    overflow:hidden;
    text-align: center;
    line-height: 100px;
        -moz-transition-property: top,left,width,height;
     -webkit-transition-property: top,left,width,height;
         -ms-transition-property: top,left,width,height;
          -o-transition-property: top,left,width,height;
             transition-property: top,left,width,height;
        -moz-transition-duration: 1s;
     -webkit-transition-duration: 1s;
         -ms-transition-duration: 1s;
          -o-transition-duration: 1s;
             transition-duration: 1s;
}
.go{
    height:0;
    width:0;
}
注:@Athariがコメントで正しく言及されているように、最も幅広いサポートのためにすべてのブラウザープレフィックスを含める必要があります。(私の最初の答えには、moz / webkitと標準のみが含まれていました)
元の回答  
現在のHTML構造で直接行うことはできません。フロートコンセプトはそれをサポートしていません。
しかし、追加のラッパーを購入できるのであれば、問題はありません。
追加のラッパー要素の内容をスライドするだけです。
floatラッパー要素にコードを配置し、
$(document).ready(function() {
    $(".block-wrapper").click(function() {
        $(this).siblings().find('.block').slideToggle("slow");
    });
});
 http://jsfiddle.net/gaby/t8GNP/でのデモ
アップデート#1
クリックした要素を左上と後ろに移動する必要がある場合、CSSでは実際には移動できません。
それらを手動で(JSを介して)配置し、CSSトランジション(またはjquery)を設定し、クリックしたら新しい位置を適用する必要があります。
後で、複数を表示したままにして、位置を変更したい場合があります。
したがって、これと、より多くの状況/レイアウトを処理できる優れたIsotopeプラグインを確認することをお勧めします。