This is a compatibility issue between Safari and Chrome/FireFox/Opera.
.grid {
display: flex; /* establish flex container */
flex-wrap: wrap; /* enable flex items to wrap */
}
.cell {
flex: 0 0 calc(33.33% - 10px); /* don't grow, don't shrink, width less margin */
height: 50px;
max-width: 50px; /* works only in Safari */
margin: 5px;
background-color: #999;
}
.cell:nth-child(3n) {
background-color: #F00;
}
<div class="grid">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
Safari output
Chrome / FireFox / Opera output
Browser | Version
--------|--------
Safari | 9.1 (10601.5.17.4)
Chrome | 51.0.2704.63 (64-bit)
FireFox | 46.0.1
Opera | 37.0.2178.43
Standard doc http://www.w3.org/TR/css-flexbox-1/ didn't throw a light on use of max-width with multiline flex boxes except in the cross direction.
Reference: Issue came to light from discussion on How do I create a 3x3 grid via CSS?