2012-12-10 17 views
6

Ktoś wie o technice najlepiej css tylko dla uzyskania ol do przepływu w dwóch kolumnach, jeśli jest dłuższy niż wysokość kontenera? Liczba pozycji na liście może się różnić, a wysokość pojemnika może się zmieniać.uporządkowana lista dwóch przepływów kolumnowych

Kiedy próbuję ustawić LI na width:50% i float:left przechodzi w dwie kolumny, ale 2 idzie obok 1 zamiast pod nią.

co chcę osiągnąć to:

  1. abcdef 4. abcdef
  2. abcdef 5. abcdef
  3. abcdef
+0

Czy próbowałeś tego? [link] (http://stackoverflow.com/questions/194803/automatic-two-columns-with-css-or-javascript?rq=1) 'Automatyczne dwie kolumny z CSS lub JavaScript' – sonofagun

+0

możesz użyć [this] (http://stackoverflow.com/a/20701658/1320764) – VoVaVc

Odpowiedz

18

To będzie pracować dla nowoczesnych przeglądarek (IE nie IE) korzystanie z reguł column-count i column-gap: fiddle

ol#two-columns { 
    -moz-column-count: 2; 
    -moz-column-gap: 20px; 
    -webkit-column-count: 2; 
    -webkit-column-gap: 20px; 
    column-count: 2; 
    column-gap: 20px; 
} 

Opcja cross-browser byłoby:

  1. zdefiniować dwa DIV wewnątrz OL i unoszą je w lewo
  2. wstępnie obliczyć całkowitą liczbę Li
  3. jeżeli łączna przekracza pojemność jednego DIV, resztę umieszcza w drugim DIV