我有一個帶有max-height
的flexbox容器。它有兩個孩子,水平彎曲,其中一個有overflow: auto
。在Chrome中,溢出的孩子停止增長,並在達到容器的最大高度後滾動。在Firefox中,它溢出了容器。有溢出的彎曲孩子尊重父母在Chrome中的最大高度,而不是Firefox
我正在針對最新的Chrome(目前爲59)進行開發,但必須支持Firefox 40+,因此我正在使用Firefox 40進行測試。作爲參考,caniuse.com報告FF40 fully supports flexbox。
這顯然是在新版本的FF正常工作,但不是在FF40,我使用,所以對於那些沒有進入到舊的FF,這裏是我看到的行爲的截圖:
我可以通過消除左邊的孩子解決這個和設置在容器上使用flex-direction: column
,但不幸的是我的實際應用需要左側的內容,並且需要水平彎曲。
爲什麼不同瀏覽器之間的差異?什麼是跨瀏覽器的解決方案,以允許孩子溢出停止增長,因爲它在Chrome中?
div { padding: 10px; }
#container {
border: 1px solid green;
display: flex;
max-height: 200px;
}
#left {
border: 1px solid purple;
flex: 1;
}
#right {
border: 1px solid orange;
flex: 3;
overflow: auto;
}
<div id="container">
<div id="left">
Left content
</div>
<div id="right">
I stop growing at 200px tall in Chrome, but not in Firefox
<ul>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
<li>Stuff</li>
</ul>
</div>
</div>
我在Chrome,Firefox和Edge上看到了完全相同的行爲。沒有看到任何區別。 –
我應該報告我使用的是Firefox 40和Chrome 58.所以我的FF版本有點舊,但是caniuse.com確實表示flexbox是完全支持的。 –
考慮這種可能性:https://stackoverflow.com/q/36247140/3597276 –