2013-05-12 12 views
5

Ho un semplice layout a 3 colonne basato su Twitter Bootstrap. L'unico problema è che ogni colonna viene assemblata da un blocco con altezze diverse.Layout a tre colonne con blocchi di altezze diverse

<div class="container"> 
    <div id="blocks" class="row"> 
     <div class="span4"> 
      <div class="block" id="block1"> 
      <div class="block" id="block4"> 
      <div class="block" id="block7"> 
     </div> 
     <div class="span4"> 
      <div class="block" id="block2"> 
      <div class="block" id="block5"> 
      <div class="block" id="block8"> 
     </div>    
     <div class="span4"> 
      <div class="block" id="block3"> 
      <div class="block" id="block5"> 
      <div class="block" id="block9"> 
     </div> 
    </div> 
</div> 

This way.

Funziona abbastanza bene, ad eccezione di piccoli display. Quindi l'ordine dei blocchi non è ordinato.

On small displays

C'è qualche modo per ottenere blocchi ordinati senza alcun JavaScript?

+0

Are le diverse altezze sono state fissate? In altre parole, le altezze possono essere codificate nel css (o in uno stile in linea) oppure i blocchi devono essere regolati in base al contenuto? –

+0

No, si basa sul contenuto. –

risposta

1

Non esiste alcun modo per ottenere questo effetto con la struttura a 3 colonne. Se i blocchi fossero tutti della stessa altezza, si potrebbe galleggiare: lasciato tutti i blocchi senza le colonne, quindi si avvolgerebbero in ordine. Dal momento che non sono della stessa dimensione si dovrebbe utilizzare tale JavaScript come muratura:

http://masonry.desandro.com/

+0

Ho provato ad evitare JavaScript. Ma se non c'è altro modo ... –

0

La sua gonna essere abbastanza difficile da raggiungere questo obiettivo, si potrebbe desiderare di giocare con lista unica con float: left; o visualizza: blocco in linea;

o

si può avere 2 set di lista con @media all'interno del CSS, in modo dipendono dalla dimensione dello schermo è possibile visualizzare o nascondere la div selezionato

esempio css

@media screen and (min-width: 768px) and (max-width: 1024px) { 
.displayFullScreen {display: block;} 
.displayMobileScreen {display: none;} 
} 


@media screen and (max-width: 767px) { 
.displayFullScreen {display: none;} 
.displayMobileScreen {display: block;} 
} 
Problemi correlati