2012-08-13 17 views
13

Eksperymentuję z CSS i właściwością float. Mam ten „Witryna”, z wieloma div wyrównany do 80px siatki i float: left:"Lepsze" pływające w CSS

Simple CSS floating

Czy istnieje sposób w CSS, aby to wygląda tak - tak elementy można wykorzystać pustą przestrzeń nad nimi ?

More compact - uses empty space above the elements

Bez JavaScriptu, jeśli jest to możliwe.

Dzięki, Martin.

+0

+1 za doskonałe makiety obrazu –

+0

Duplikat http://stackoverflow.com/q/11940430/963514 – Systembolaget

Odpowiedz

6

dla Dachówka dynamicznej zawartości zarówno poziomo jak i pionowo, opcje CSS są:

  • float:left, jak już widzieliśmy, tylko oferuje ograniczoną Układanie poziomego.
  • display:inline-block daje inny wynik niż float:left, ale bez kafelków.
  • CSS multi-column layout nie jest jeszcze w pełni zdefiniowany. Obsługuje pionowy przepływ do ukrytych kolumn, ale prawdopodobnie nie w sposób, który kwalifikuje się jako kafelkowanie.
  • flexible box layout nie jest jeszcze obsługiwany. Obsługuje rodzaj przepływu poziomego lub pionowego, który może nie kwalifikować się jako kafelkowanie, chociaż wydaje się, że jest krokiem we właściwym kierunku.

Podsumowując, nawet standardy CSS, które nie zostały jeszcze w pełni zdefiniowane, wydają się tego nie wspierać; więc może być daleko w tyle. Najprostszą opcją zastępczą jest użycie wtyczki jQuery.

Oprócz Masonry (jak zasugerował @Billy Moat), kolejne kilka wtyczek jQuery to Isotope i Tiles Gallery. Najczęściej wymieniany jest murarski.

9

Nie, nie można tego zrobić w CSS. Najlepszym sposobem jest użycie elementu javascript zwanego masonry, obawiam się.

http://masonry.desandro.com/

+0

Spróbuję, dzięki. –

+3

Zobacz też http://isotope.metafizzy.co/ –

+1

+1 za to, że jest niesamowity i opowiadanie mi o tej fajnej bibliotece. – Evildonald

1

powiedzmy, że liczba px iść w górę, aby wypełnić przestrzeń 1 blok jest 50px. margin-top: -50px;

To nie jest magia, to tylko odrobina ręcznej roboty dla każdego z nich. Jeśli twoja zawartość jest dynamiczna, to nie może działać, lub potrzebujesz js do obliczenia, czy musimy iść w górę, czy nie, w wielu wierszach i wszystkim.

0

można to zrobić, ale jak mówi CHE, jeśli zawartość jest dynamiczna, wszystko pójdzie źle w najgorszy możliwy sposób.

Ale jeśli jest to strona statyczna, można to zrobić na pewno.

Aby rozwiązać ten problem, zastanów się w blokach & i wyrównaj je, wewnątrz każdego bloku ponownie wyrównaj wszystkie bloki.