2013-05-04 6 views
9

Voglio centrare orizzontalmente alcuni blocchi in linea, ma allo stesso tempo li ho allineati a sinistra nella loro ultima riga (vedi sotto).Centrare più blocchi in linea con CSS e allineare l'ultima riga a sinistra

Il problema è che ho raggiunto qualcosa di simile (http://jsfiddle.net/5JSAG/):

|  _____ _____  | 
|  |  | |  |  | 
|  | 1 | | 2 |  | 
|  |_____| |_____|  | 
|   _____   | 
|   |  |   | 
|   | 3 |   | 
|   |_____|   | 

Mentre io voglio qualcosa di simile:

|  _____ _____  | 
|  |  | |  |  | 
|  | 1 | | 2 |  | 
|  |_____| |_____|  | 
|  _____    | 
|  |  |    | 
|  | 3 |    | 
|  |_____|    | 

potete vedere alcuni HTML di esempio a http://jsfiddle.net/5JSAG/.

Ho provato con column-count e column-width ma non funziona come voglio che, perché l'ordine dei blocchi cambiamenti:

|  _____ _____  | 
|  |  | |  |  | 
|  | 1 | | 3 |  | 
|  |_____| |_____|  | 
|  _____    | 
|  |  |    | 
|  | 2 |    | 
|  |_____|    | 

risposta

2

trovato piuttosto semplice soluzione a questo problema: basta aggiungere alcuni div riempitivo alla fine, che sono della stessa larghezza con i blocchi che sono allineati.

http://jsfiddle.net/5JSAG/34/

HTML:

<div style="text-align:center"> 
    <div class="entry">1</div> 
    <div class="entry">2</div> 
    <div class="entry">3</div> 
    <div class="entry">4</div> 
    <div class="entry">5</div> 
    <span class="fill"></span> 
    <span class="fill"></span> 
    <span class="fill"></span> 
    <span class="fill"></span> 
</div 

CSS:

.fill 
{ 
    display:inline-block; 
    width:100px; 
    height:0px; 
    line-height:0px; 
    font-size:0px; 
} 

.entry 
{ 
    display:inline-block; 
    margin-top:10px; 
    width:100px; 
    height:60px; 
    padding-top:40px; 
    border:1px solid red; 
} 
+0

Pensieri interessanti. Ma nel mio caso, è un po 'diverso. Creo il '

1
' in modo dinamico basato su un array. Gli elementi dell'array vengono modificati dinamicamente e la lunghezza dell'array è sconosciuta. Sai come risolverlo? –

0

loro Floating sembra l'opzione migliore qui. È possibile inserire i margini sinistro/destro sul contenitore se è necessario spazio a sinistra e a destra, oppure è possibile assegnare al contenitore una larghezza e margini sinistro e destro automatici.

Sembra che valga la pena di considerare questo come un elenco non ordinato.

Ecco un esempio:

http://codepen.io/anon/pen/Ehgdp

+0

Floating sembra portarli fuori dal contenitore e non sono centrati più. L'impostazione di un margine sul contenitore non ha alcun effetto. – bogdansrc

+0

Ho aggiornato il mio esempio. Ho aggiunto 'overflow: hidden;' per forzare il contenitore ad avvolgere il contenuto flottato, e ho margini sinistro/destro per centrare il contenitore. –

+0

Questo è vicino, ma ho bisogno della larghezza del contenitore per essere flessibile. Un modo per riuscirci? Senza avere la larghezza flessibile, potrei semplicemente usare un tavolo. – bogdansrc

Problemi correlati