Ho un contenitore a larghezza fissa <div>
che visualizza uno o più widget <div>
s. Voglio farlo sembrare come questo:Visualizzazione di elementi in più righe utilizzando i CSS
< - blocchi grigi sono i widget, bordo rosso è il contenitore
semplificato, la mia struttura in HTML simile a questo:
<div id="container">
<div id="widget1">1</div>
<div id="widget2">2</div>
<div id="widget3">3</div>
<div id="widget4">4</div>
<div id="widget5">5</div>
<div id="widget6">6</div>
<div id="widget7">7</div>
</div>
Considerazioni
- I widget avranno un'altezza fissa es. 100px
- I widget avranno una larghezza fissa, ad es. 100 px ma possono anche essere un multiplo di tale larghezza (più eventuali margini incrociati - vedi widget 1)
- I widget devono essere distanziati correttamente con un margine (o simile) ad es. 10px
- Non so quanti widget ci saranno (l'utente può assegnare tanti o pochi come vogliono al contenitore).
- Il contenitore ha una larghezza fissa ma non ha uno stile "visivo" (il bordo rosso è lì per la dimostrazione)
- La soluzione deve funzionare nei browser moderni (e MSIE7) e sarebbe idealmente pura CSS.
causa della considerazione 4. Non posso assegnare ulteriori markup esempio riga div, classi (.first-child, .last-child) e causa di 2.:nth-child
non funzionano AFAIK.
Le cose che ho provato
margin-left sui widget con :first-child
impostazione margin-left: 0
non verrà visualizzata una nuova riga correttamente.
margin-right su widget con :last-child
impostazione margin-right: 0
la prima riga forza il contenitore div più largo e last-child isn't supported until MSIE9.
uguali margini sinistro e destro (ad esempio margine: 0 5px 10px) forza nuovamente il contenitore.
overflow - funziona alla grande nella mia testa! Non tanto con margini o padding.
C'è un modo per farlo in CSS?
http://jsfiddle.net/agtb/VHXGT/
Penso che tu sia giusto io ero! Con una piccola modifica (i widget utilizzano solo margin-left e margin-bottom e impostando un margine negativo a sinistra sul container) posso impedire l'allargamento del contenitore e l'attivazione di una barra di scorrimento (è la larghezza dell'area della mia pagina). Grazie! – agtb