Я хочу содержать гибкий элемент внутри родителя, чтобы он не разливался вне родителя. Только элемент 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>