Distanziamento automatico div

pippo8888

Nuovo Utente
1 Ott 2013
4
0
0
Salve a tutti. Sto facendo una cosa con css. Il risultato finale è quasi come lo volevo io: ho un div principale e 5 aree di div del 20% di lunghezza ognuna e 100% di altezza. In queste 5 aree volevo metterci n quadrati.
Per farlo correttamente ho creato 25 div, 5 per area e li ho messi con 20% di altezza in modo che venisse una cosa simile:

A F K P U
B G L Q V
C H M R W
D I N S X
E J O T Y

Con il php ho messo la viariabile $div che varia da "immagine" a "vuoto".
Quindi se c'è l'immagine il div si vede altrimenti non si vede. (spero di essere stato chiaro).
Tutto questo casino l'ho fatto perchè non sono riuscito ad adattare le fasce in modo che si autodistanziassero tra di loro. Se per esempio toglievo il div C adesso succede questa cosa:

A
B

D
E

è brutto che non abbiano la stessa distanza tra di loro. Però se io non facevo dei div di altezza 20% ma li facevo più piccoli veniva una cosa così

A
B
D
E
(vuoto)

Sperando che mi sia spiegato (postare il codice sarebbe inutile visto che è troppo ampio per essere leggibile), qualcuno può consigliarmi?

Vorrei in pratica fare in modo che se ci sono 5 div su 5 in una fascia rimangano disposti equidistanti dai bordi e tra di loro; se ce ne sono 4 si allargano un po' di più; 3 ancora di più... fino a 1 che si mette esattamente al centro anche se fosse solo il div A.

Grazie per la risposta e soprattutto per la pazienza nel leggere tutto.
 
Ti sei spiegato abbastanza ma francamente trovo un po' incasinata la faccenda.
La cosa migliore era creare una tabella, non impelagarti con i div su dati tabellari come una serie di immagini, al limite una serie di liste andava comunque bene.
Ad ogni modo per distanziare un elemento in html, e quindi anche un div, basta dargli un po' di margine con i css, ad esempio div {margin: 3px;} per averlo distanziato di 3 pixel tutto intorno.
Ma c'è un problema :D la collisione dei margini top e bottom (alto e basso), ovvero il margine bottom di un div che si trova sopra ad un altro si sottrae al margine top di quello che sta sotto. Così se il margine è 3 pixel per ogni div, al fianco di ognuno avrai 6 pixel (3 per uno + 3 di quello successivo) mentre sopra e sotto solo 3 pixel, incasinando un po' il layout. Bisogna insomma giocare con i margini.
Il div vuoto lo metti vuoto con sfondo trasparente al limite e dimensioni date (width: ed height:) ovviamente queste sono arbitrarie, se ho capito bene le immagini non hanno tutte la stessa dimensione, ma qui non c'è molto da fare, se non usare altre tecniche CSS3, vedi Flickr ad esempio.
Oppure usare una tabella e le sue celle con cui giocare con border-collapse e borde-spacing http://www.diodati.org/w3c/css2/tables.html#propdef-border-collapse insomma vedi tu quale via ti conviene usare.
 
A me servirebbe una cosa automatica. Se uso le tabelle non posso far sparire una tabella perchè resterebbe ma vuota. Oltretutto se uso le IMG non so come fare a scriverci sopra. C'è modo di scrivere sopra l'immagine esattamente come sopra una div con sfondo?
 

Discussioni simili