Это будет работать для Safari и в более ранних версиях iOS (10, 11), если вы установите flex на 1 1 auto
(сокращение для автоматического увеличения, уменьшения и установки ширины основы) и удалите width: 100%
собственность от li
.Протестировано на нескольких устройствах под управлением iOS 10-12. Фрагмент JSFiddle доступен здесь .
Обновлен CSS:
* {
/* normalize */
padding: 0;
margin: 0;
border: 0;
color: inherit;
font-size: inherit;
font-weight: inherit;
text-transform: inherit;
font-family: inherit;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
background: 0 0;
min-height: 0;
user-select: none;
box-sizing: border-box;
position: relative;
}
#a {
display: flex;
min-height: 100vh;
min-height: calc(var(--vh, 1vh)*100);
background: cyan;
}
#b {
display: flex;
height: 100%;
flex: 1;
flex-direction: column;
padding: 50px;
background: yellow;
width: 100%;
}
#c {
flex-wrap: wrap;
flex-direction: row;
max-width: 100%;
display: flex;
list-style: none;
background: green;
}
li {
flex: 1 1 auto;
display: flex;
padding: 10px;
border: 3px solid red;
flex-direction: column;
}
* {
/* normalize */
padding: 0;
margin: 0;
border: 0;
color: inherit;
font-size: inherit;
font-weight: inherit;
text-transform: inherit;
font-family: inherit;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
background: 0 0;
min-height: 0;
user-select: none;
box-sizing: border-box;
position: relative;
}
#a {
display: flex;
/* Use max-width for testing purposes */
/*max-width: 25%;.*/
min-height: 100vh;
min-height: calc(var(--vh, 1vh)*100);
background: cyan;
}
#b {
display: flex;
height: 100%;
flex: 1;
flex-direction: column;
padding: 50px;
background: yellow;
width: 100%;
}
#c {
flex-wrap: wrap;
flex-direction: row;
max-width: 100%;
display: flex;
list-style: none;
background: green;
}
li {
flex: 1 1 auto;
display: flex;
padding: 10px;
border: 3px solid red;
flex-direction: column;
}
<div id="a">
<div id="b">
<ul id="c">
<li>foo</li>
<li>hello</li>
<li>world</li>
<li>bar</li>
<li>food</li>
<li>hi</li>
<li>morning</li>
<li>something</li>
<li>beverage</li>
<li>snack</li>
<li>drink</li>
<li>other</li>
<li>world</li>
<li>bar</li>
<li>food</li>
<li>hi</li>
<li>morning</li>
<li>something</li>
<li>beverage</li>
<li>snack</li>
<li>drink</li>
<li>other</li>
</ul>
</div>
</div>