2015-09-21 13 views
24

Qual è il corretto CSS per forzare Safari a non sovrapporre gli elementi flessibili all'interno di un contenitore flessibile predefinito?Elementi di flexbox CSS sovrapposti in Safari

Safari sembra dare troppa larghezza per piegare gli oggetti con un sacco di contenuti.

Safari: (v8.0.8 su Mac OS X 10.10.5 Yosemite)
flex-items-safari.png

Le voci flex visualizzare bene in Chrome e Firefox.

Chrome:
enter image description here


CSS:

main { 
    display: flex; 
    border: 3px solid silver; 
    } 
main >div { 
    background-color: plum; 
    margin: 10px; 
    } 


HTML:

<main> 
    <div> 
     Doh!!!!!!!!!!! 
    </div> 
    <div> 
     Lorem ipsum dolor sit amet, consectetur adipiscing 
     elit, sed do eiusmod tempor incididunt ut labore et 
     dolore magna aliqua. Ut enim ad minim veniam. 
    </div> 
</main> 

violino con il codice:
http://jsfiddle.net/LL05grus/6

+0

Sembra che questo problema sia stato risolto. Testato con ** Safari 10.0 ** su ** macOS 10.12 Sierra **. –

risposta

35

L'elemento si sta restringendo. È necessario impostare la proprietà flex-shrink su 0 sull'elemento di restringimento.

+3

Questo è stato davvero utile! Tuttavia, ho dovuto andare con flex: 0 0 auto per risolvere il problema dalla mia parte. – Gabin

+0

Se avessi lo stesso problema, uno degli elementi flessibili non ha avuto abbastanza spazio su Safari Mobile. Questo sembra risolverlo per me. Grazie – Springrbua

+6

Puoi anche aggiungere 'flex-shrink: 0;' all'elemento che impedisce di ridurne le dimensioni minime. – Max

0

Avevo anche un problema simile in cui la direzione della casella flessibile è stata modificata in elementi sovrapposti di colonne su iPad. Il problema era con la proprietà flex: 0 1 0; applicata all'elemento figlio. Dare il valore base auto. flex: 0 1 auto;