2012-08-24 10 views
12

Jak widać na zdjęciu, każde pudełko ma inną wysokość i są tam pudełka o podwójnej szerokości.Układ w stylu muru TYLKO z CSS

Layout

Czy to możliwe, aby utworzyć układ murowane stylu tylko z CSS?

+1

hej kolego Pamiętam tę stronę Nie wiem, czy chciałbyś to sprawdzić Naprawdę nie pamiętam, czy to działało z js czy czystym css ale na pewno nie używa masonerii http: //www.leica- oskar-barnack-award.com/ mam nadzieję, że pomoże – Paradise

+3

Gdzie jest twój kod, którego próbowałeś? Gdzie jest twoja piaskownica online lub jsfiddle? Gdybyś szukał SO, dowiedziałbyś się, że nie można powielić Murarstwa za pomocą CSS i że działa on w różnych przeglądarkach i na różnych urządzeniach. – Systembolaget

+2

Spokojnie i powoli oddychaj ...;) – Bernat

Odpowiedz

19

Dzięki wsparciu CSS3 można to zrobić:

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; 
}​ 

Bez wsparcia CSS3, trzeba uciekać się do js niestety.

+0

Jak już powiedziałem, są tu pudełka o podwójnej szerokości! (2 kolumny, w tym przypadku). I tak, mogę używać CSS3! – Bernat

+1

Odkryłem to od dawna, po prostu nie jest to możliwe z samym CSS. – alt

+22

Problem z tym rozwiązaniem polega na tym, że elementy są ułożone od góry do dołu, od lewej do prawej, natomiast to, czego się zwykle oczekuje (uzasadnione założenia kulturowe) jest układem od góry do dołu od lewej do prawej. To jest showstopper dla zwykłych zaleceń opartych na kolumnach CSS3. –

1

Pracuję teraz nad stroną z tym samym rodzajem układu, dwiema kolumnami ze sporadycznym podwójnym szerokim polem. To, co robię, to oddzielić podwójną szerokość od reszty treści. Na przykład:

<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> 

Następnie można zastosować rozwiązanie kolumny CSS3 tylko do klasy two-columns. Jeśli potrzebujesz wsparcia dla IE9, nie będziesz musiał dodawać numeru JavaScript fallback.