2011-11-30 10 views
10

Vorrei centrare una "griglia" di elementi che, una volta ridimensionati, si adattano al centro stesso.Griglia del fluido centrale degli elementi senza impostare la larghezza sul genitore

Ti piace questa:

___________________ 
|     | 
| [] [] [] [] | 
| [] [] [] [] | 
| [] [] []  | 
------------------- 
________________ 
|    | 
| [] [] [] | 
| [] [] [] | 
| [] [] [] | 
| [] []  | 
---------------- 
_____________ 
|    | 
| [] [] | 
| [] [] | 
| [] [] | 
| [] [] | 
| [] [] | 
| []  | 
------------- 

Ho provato a installare un max-width, ma che porta a questo problema quando ridimensionata:

________________ 
|    | 
| [] [] [] | 
| [] [] [] | 
| [] [] [] | 
| [] []  | 
---------------- 
_____________ 
|    | 
| [] []  | 
| [] []  | 
| [] []  | 
| [] []  | 
| [] []  | 
| []   | 
------------- 

Non considero usando media query e l'impostazione difficile widths (o anche max-widths) per ogni configurazione una soluzione reale.

Sono aperto a CSS3 fino a quando si degrada con garbo, e vorrei evitare javascript.

Modifica: L'aggiunta di elementi non semantici è anche un interruttore, un contenitore div o qualcosa sarebbe passabile ma non ideale.

Il markup dovrebbe essere la seguente:

<ul> 
     <li>...</li> 
     <li>...</li> 
     <li>...</li> 
</ul> 

Ecco un demo per iniziare.

Grazie.

+0

Davvero non penso che ci sia un modo per fare quello che stai chiedendo senza usare javascript o jQuery – CBRRacer

+0

Aggiunta una soluzione basata sui tuoi nuovi requisiti. – ScottS

risposta

6

È ancora un po 'vago su quali siano esattamente le vostre esigenze di centratura (come in tutte le vostre illustrazioni sopra mostrano un numero pari di elementi, quindi non so cosa vi aspettate per numero dispari. ho appena aggiunto un text-align: center al ul e raggiunto un effetto di centraggio (http://jsfiddle.net/nR9Mk/1/), ma non so se si comporta come volete

Aggiornamento:. Se sei solo a che fare con i numeri pari e si desidera per rimanere raggruppati per due, quindi funzionerebbe: http://jsfiddle.net/nR9Mk/8/.

ROUND 2: in base ai requisiti del "numero dispari" rivelato, ho trovato una soluzione che funziona. Nota: 1) richiede un extra di markup HTML, 2) devi impostare qualche tipo di limite pratico su quanto vuoi arrivare e ottenere comunque l'effetto. Here è il codice con gli elementi "buffer" rilevati da un outline e here con il contorno rimosso.

ROUND 3: So che hai già accettato la mia risposta, ma stavo già lavorando su questo, quindi ho pensato di offrirlo comunque. Sulla base del tuo commento sull'interruttore, here is a modified plan potrebbe essere utile per te (o qualcun altro). È un ibrido - "a volte" spinge gli elementi a sinistra (di solito quando sarebbe più difficile non farlo) e qualche volta li lascia stare "off column" ma centrati. Per impedirgli di sembrare semplice "strano", viene dato un max-width di sei colonne di larghezza.

+0

Ho aggiornato i miei esempi con numeri dispari. Il posizionamento dell'ultima fila non è l'ideale e sto ancora cercando altre soluzioni, ma grazie. – bookcasey

+0

Grazie. Ciò richiederà sicuramente una soluzione diversa. – ScottS

+0

Scott, prima di tutto, grazie mille per il tuo contributo. +1, quindi lo sai.Tuttavia, gli elementi extra sono un rompicapo, mi scuso per non aver specificato ciò nella mia risposta. Ho anche osservato questo [bug] (http://i.imgur.com/CP6AI.png). Grazie ancora. – bookcasey

Problemi correlati