Я хочу содержать гибкий элемент внутри родителя, чтобы он не разливался вне родителя. Только элемент flex должен иметь полосу прокрутки (при необходимости).
Мой стиль отлично работает в Chrome и IE11, но не в Firefox. Я подозреваю, что существует разница в интерпретации стиля flex-basis, установленного на #wrapper, но я не могу понять, почему Firefox делает это по-другому.
Здесь желаемый рендеринг, как показано в Chrome:

И вот что происходит в Firefox:

Я могу применить исправление "клейкой ленты", добавив #left { height: calc(100vh - 50px); }, но я предпочел бы, если возможно, выявить фактическую несогласованность.
body, html, h1 {
padding: 0;
margin: 0;
}
header {
background-color: rgba(0, 255, 255, 0.2);
height: 50px;
}
#main {
height: 100vh;
background-color: rgba(0, 255, 255, 0.1);
display: flex;
flex-flow: column;
}
#wrapper {
display: flex;
flex-grow: 2;
flex-basis: 0%;
}
#left {
overflow-y: scroll;
background-color: rgba(0, 255, 255, 0.2);
width: 30%;
}
.box {
margin: 5px 0;
height: 50px;
width: 100%;
background-color: rgba(0, 0, 0, 0.2);
}
<div id="main">
<header>
<h1>Header</h1>
</header>
<div id="wrapper">
<div id="left">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</div>
</div>