2012-08-24 43 views
12

Như bạn có thể thấy trong hình, mỗi ô có chiều cao khác nhau và có một số ô có chiều rộng gấp đôi.Bố cục kiểu Masonry CHỈ với CSS

Layout

Có thể tạo ra một bố cục nề kiểu chỉ với CSS?

+1

hey buddy Tôi nhớ trang web này Tôi không biết nếu bạn muốn kiểm tra nó tôi thực sự không nhớ nếu nó làm việc với js hoặc css tinh khiết nhưng chắc chắn không phải là sử dụng nề http: //www.leica- oskar-barnack-award.com/ hy vọng nó sẽ giúp – Paradise

+3

Mã của bạn bạn đã thử ở đâu? Sandbox hoặc jsfiddle trực tuyến của bạn ở đâu? Nếu bạn đã tìm kiếm trên SO, bạn có thể đã phát hiện ra rằng không thể sao chép Masonry với CSS và làm việc với trình duyệt chéo và thiết bị chéo. – Systembolaget

+2

Làm cho nó dễ dàng, và hơi thở chậm ...;) – Bernat

Trả lời

19

Với sự hỗ trợ css3 bạn có thể làm điều này:

http://jsfiddle.net/huAxS/2/

.container { 
    -moz-column-count: 2; 
    -moz-column-gap: 10px; 
    -webkit-column-count: 2; 
    -webkit-column-gap: 10px; 
    column-count: 2; 
    column-gap: 10px; 
    width: 360px; 
} 

.container div { 
    display: inline-block; 
    width: 100%; 
    background-color: red; 
}​ 

Với không hỗ trợ CSS3, bạn phải dùng đến js không may.

+0

Như tôi đã nói, có một số hộp có chiều rộng gấp đôi! (2 cột, trong trường hợp này). Và có, tôi có thể sử dụng CSS3! – Bernat

+1

Tôi đã khám phá nó trong một thời gian dài, nó chỉ là không thể với CSS một mình. – alt

+22

Vấn đề với giải pháp này là các mục được đặt ra từ đầu đến cuối, từ trái sang phải, trong khi những gì người ta thường mong đợi (giả định văn hóa được miễn) là từ trái sang phải, bố cục từ trên xuống dưới. Đây là showstopper cho các khuyến nghị dựa trên CSS3-cột thông thường. –

1

Tôi đang làm việc trên một trang web ngay bây giờ với cùng một loại bố cục, hai cột có hộp đôi không thường xuyên. Những gì tôi làm chỉ là tách biệt hai mặt với phần còn lại của nội dung. Ví dụ:

<div class="two-columns"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div> 
<div class="double-wide"> 
</div> 
<div class="two-columns"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div> 

Sau đó, bạn có thể áp dụng giải pháp cột CSS3 cho lớp two-columns. Nếu bạn cần hỗ trợ IE9, bạn sẽ cần phải thêm một số JavaScript fallback.

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