2015-06-24 8 views
20

Ho creato un elenco con icone sociali. Quelle icone dovrebbero avvolgere su schermi piccoli.Flexbox/IE11: flex-wrap: wrap non si avvolge (Immagini + Codepen all'interno)

lo uso flex-wrap: wrap; e funziona perfetto in Firefox e Chrome:

Chrome, Firefox

Ma Internet Explorer 11 (e IE 10) non rompere la linea:

IE 11

Esempio di codice penna

Visualizza il codice qui: http://codepen.io/dash/pen/PqOJrG

codice HTML

<div> 
    <ul> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    <li><a href="#"><img src="http://placehold.it/40x40" alt=""></a></li> 
    </ul> 
</div> 

codice CSS

body {background: #000;} 

div { 
    background: rgba(255, 255, 255, .06); 
    display: table; 
    padding: 15px; 
    margin: 50px auto 0; 
} 

ul { 
     display: -webkit-flex; 
     display: -ms-flexbox; 
    display: flex; 
     -webkit-flex-wrap: wrap; 
     -ms-flex-flow: row wrap; 
    flex-wrap: wrap; 
     -ms-flex-pack: center; 
     -webkit-justify-content: center; 
    justify-content: center; 
    list-style: none; 
    padding: 0; 
} 

li { 
    background: purple; 
    margin: 4px; 
} 

img { 
    display: block; 
    height: 40px; 
    padding: 7px; 
    width: 40px; 
} 

Questo sembra essere un bug di IE, che si presenta quando contenitore principale di un elemento flessibile è impostato su display: table;. La rimozione di questa linea risolve il problema. Ma ho bisogno di display: table; per centrare il contenitore genitore.

Qualche idea su come ottenere IE11 per avvolgere le immagini?

risposta

20

Provare a definire una larghezza per il contenitore genitore, ad es. width: 20%;. Pertanto, il contenitore verrà formattato come vuoi e il flex-wrap funzionerà. E sì, è possibile rimuovere il display: table;.

+1

Sebbene questa soluzione non sia perfetta al 100%, poiché non conosco la larghezza del contenitore genitore, funziona. Molte grazie! – dash

+0

Sì, con le percentuali non è necessario definire una larghezza esplicita per esempio in pixel, ed è meglio farlo con valori relativi. – jhorapb

+0

Lungo le stesse linee, è possibile aggiungere una larghezza massima al genitore per farlo avvolgere entro i limiti del proprio layout. –