2011-10-08 26 views
8

Tôi đang cố gắng sắp xếp các hình ảnh như hình dưới đây? Tôi đã cố gắng nổi bên trái, nhưng nó không hiển thị như hình dưới đây.Cách sắp xếp hình ảnh như thế này?

enter image description here

+0

bạn có thể tách toàn bộ bố trí trong 'tables' với lồng nhau ' table' không phải là giải pháp tốt nhất nhưng nó là một trong – SNpn

Trả lời

7

CSS không thể làm điều đó, bạn cần JavaScript.

Cụ thể jQuery, sau đó jQuery Masonry.

Hoặc, nếu bạn muốn sử dụng JavaScript thô, bạn có thể sử dụng Vanilla Masonry.

Hãy nhìn vào những hình ảnh giới thiệu: http://masonry.desandro.com/demos/images.html

+0

cảm ơn vì điều đó. Tôi vừa phát triển lại thuật toán cần thiết cho tác vụ này ... –

+0

Thankyou, bạn đã lưu ngày của tôi – complez

3

CSS tinh khiết, được thử nghiệm trong Internet Explorer, Fire Fox, và Opera:

<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

Vâng, đó chính là hình ảnh: D http://jsfiddle.net/thirtydot/g5uan/. Thật không may, hình ảnh rõ ràng chỉ là một * ví dụ *: hình ảnh thực tế có thể có độ rộng/chiều cao hoàn toàn khác nhau. – thirtydot

+0

Vâng, ba mươi, thay đổi số! Nó chỉ mất một vài phút để làm và được, thay vì rõ ràng, không phải không thể như đã nêu bởi các áp phích khác. –

Các vấn đề liên quan