2011-10-08 6 views
8

私は下の画像のような画像を手配しようとしていますか?私はすでにフロートを左にしようとしていますが、下の写真では表示されませんでした。このような画像の配置方法は?

enter image description here

+0

あなたが入れ子になったとtables' '全体のレイアウトを分離することができます'テーブルは最高の解決策ではありませんが、それは1つです – SNpn

答えて

7

CSSはそれを行うことはできません、あなたはJavaScriptを必要とします。

特にjQuery、次にjQuery Masonry

また、生のJavaScriptを使用する場合は、Vanilla Masonryを使用できます。

画像を見ては、デモ:インターネットエクスプローラ、ファイアーフォックス、オペラでテストhttp://masonry.desandro.com/demos/images.html

+0

ありがとう。私はちょうどこのタスクに必要なアルゴリズムを再開発していた... –

+0

Thankyou、あなたは私の一日を保存しました – complez

3

ピュアCSSを、:

<style type="text/css"> 
    /*<![CDATA[*/ 
    .A { 
     float: left; 
     margin: 0px 6px 0px 0px; 
    } 
    .A1 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 74px; 
     margin: 0px 0px 6px 0px; 
    } 
    .A2 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 83px; 
     clear: left; 
    } 

    .B { 
     float: left; 
     margin: 0px 6px 0px 0px; 
    } 
    .B1 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 47px; 
     margin: 0px 0px 6px 0px; 
    } 
    .B2 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 126px; 
     clear: left; 
    } 

    .C { 
     float: left; 
     margin: 0px 6px 0px 0px; 
    } 
    .C1 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 107px; 
     margin: 0px 0px 6px 0px; 
    } 
    .C2 { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 49px; 
     clear: left; 
    } 

    .D { 
     float: left; 
     margin: 0px 6px 0px 0px; 
    } 
    .D1 { 
     border: 1px solid black; 
     float: left; 
     width: 316px; 
     height: 60px; 
     margin: 0px 0px 6px 0px; 
    } 
    .D2 { 

    } 
    .D2A { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 86px; 
     clear: left; 
     margin: 0px 6px 6px 0px; 
    } 
    .D2B { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 116px; 
     margin: 0px 6px 6px 0px; 
    } 
    .D2C { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 131px; 
     margin: 0px 0px 6px 0px; 
    } 

    .E { 
     border: 1px solid black; 
     float: left; 
     width: 100px; 
     height: 202px; 
    } 
    /*]]>*/ 
</style> 

<div class="A"> 
    <div class="A1"> 
    A1 
    </div> 
    <div class="A2"> 
    A2 
    </div> 
</div> 
<div class="B"> 
    <div class="B1"> 
    B1 
    </div> 
    <div class="B2"> 
    B2 
    </div> 
</div> 
<div class="C"> 
    <div class="C1"> 
    C1 
    </div> 
    <div class="C2"> 
    C2 
    </div> 
</div> 
<div class="D"> 
    <div class="D1"> 
    D1 
    </div> 
    <div class="D2"> 
    <div class="D2A"> 
     D2 
    </div> 
    <div class="D2B"> 
     D3 
    </div> 
    <div class="D2C"> 
     D4 
    </div> 
    </div> 
</div> 
<div class="E"> 
    E 
</div> 
+0

まあ、それはまさに画像のようです:D http://jsfiddle.net/thirtydot/g5uan/。残念ながら、画像は明らかにちょうど*例*です:実際の画像は完全に異なる幅/高さである可能性があります。 – thirtydot

+0

さて、thirtydot、数字を変更してください!それは数分しかかかりませんでしたが、明らかに他のポスターで述べたように不可能ではありませんでした。 –

関連する問題