Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overlapping CSS flexbox items in Safari

What's the correct CSS to force Safari to not overlap flex items within a default flex container?

Safari seems to give too much width to flex items with lots of content.

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

The flex items display fine in Chrome and 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> 

Fiddle with the code:
http://jsfiddle.net/LL05grus/6

like image 986
Dem Pilafian Avatar asked Sep 21 '15 07:09

Dem Pilafian


People also ask

How do I stop my flexbox from overlapping?

The best solution I've come up with is to set the services images to overflow: hidden and the staff images to nowrap, this prevents images from either gallery from overlapping with any other elements.

Does flexbox work in Safari?

Safari versions 9 and up support the current flexbox spec without prefixes. Older Safari versions, however, require -webkit- prefixes. Sometimes min-width and max-width cause alignment problems which can be resolved with flex equivalents.


2 Answers

The element is shrinking. You need to set the flex-shrink property to 0 on the shrinking element.

main >div:first-child {   -webkit-flex: 0;   flex-shrink: 0; } 
like image 110
Underfrog Avatar answered Sep 21 '22 02:09

Underfrog


I also had a similar issue where flex box direction changed to column overlapped items on iPad. The issue was with the flex: 0 1 0; property applied to child element. Give the base value auto. flex: 0 1 auto;

.parent{     display: flex;     flex-direction: column; } .parent .child{     flex: 0 1 auto; } 
like image 45
Lasithds Avatar answered Sep 22 '22 02:09

Lasithds