Ho un concetto di layout semplice che può essere riassunto da questa immagine: Flexbox reattivo - cambia i margini da orizzontale a verticale dopo l'avvolgimento?
Ciò può essere ottenuto facilmente utilizzando flexbox
. Come puoi vedere, il div # 1 e il div # 3 toccano i bordi del loro contenitore. Inoltre, il margine tra div # 1 e div # 2 è uguale al margine tra div # 2 e div # 3. Può essere fatto con:
.inner-div{
margin-left:10px;
}
.inner-div:first-child{
margin-left:0px;
}
Ora, diciamo che la larghezza della vista diminuisce. Voglio che questi div si avvolgano per formare una bella colonna. E mi piacerebbe che questo aspetto:
Ma se questi div conservano la loro configurazione margine orizzontale, hanno un aspetto simile a questo, invece:
Che, come si può indovinare, è indesiderabile.
Come modificare i margini per le div interne quando il loro contenitore è così stretto da essere "avvolto"? C'è un modo per scrivere una regola condizionale che si applicherebbe solo ai div "avvolti"? O mi manca il punto e la soluzione è molto ovvia e ho appena trascurato quella parte delle funzionalità di flex-box
? Mi piacerebbe vedere una soluzione che non preveda la previsione della larghezza del contenitore/dello schermo che cambierà il layout da riga a colonna, perché penso che sia l'opzione più gestibile.
Penso che questa soluzione è troppo rigido. L'unico punto di utilizzo di 'flex-box' per me non è quello di preoccuparsi delle query sui media e lasciare che il layout imponga il flusso all'interno di un div 'flex-box'ed. Con la tua soluzione dovrei prevedere quali dimensioni dello schermo influenzerebbero le div interne. E il fatto che la scelta di un breakpoint giusto in base a vari fattori (come larghezza della vista, layout, lunghezza del testo all'interno di altri div) sia così ingombrante rende questa soluzione molto difficile da mantenere. Sto cercando una soluzione più flessibile e manutenibile. –