當內容溢出時,我需要製作一個可滾動的div。值得注意的是,由於佈局原因,div是display: table/table-row
系統的一部分。限制顯示:高度動態時的表格行/單元元素高度
底側欄容器需要允許滾動時的含量超過高度。我遇到的問題是 - 使用這種類型的佈局 - CSS無法將較低的div鎖定到其父級的動態確定高度(.holder
)。它要麼需要百分之百的高度,要麼百分之百是其父母的高度,這太大了。
我的目標是用純CSS解決這個問題,這樣我們可以避免在改變邊欄元素的高度時運行javascript。
.wrapper-page { position: absolute; top: 38px; bottom: 10px; left: 10px; right: 10px; overflow: hidden; }
.sidebar { width: 25%; height: 100%; }
.holder { width: 100%; height: 100%; display: table; table-layout: fixed }
.holder > div:first-child { height: 25%; max-height: 25%; }
.holder > div { display: table-row; table-layout: fixed }
正因爲如此佈局,只有sidebar
將正常如果我們使用overflow-y: scroll
滾動 - 但滾動整個側邊欄。 .holder > div:last-child
是應該滾動的。
<div class="wrapper-page">
<div class="sidebar">
<div class="holder">
<div>
box one<br>
</div>
<div>
box two<br>
</div>
</div>
</div>
</div>
你能夠使用'box-sizing:border-box'嗎?如果是這樣,請通過百分比設置高度,然後將溢出設置爲您喜歡的任何配置。 – RedYetiCo
我不能使用box-sizing,因爲我們別無選擇,只能支持IE7,而且polyfill的性能消耗太大。 – helion3
所以,你在說'.holder> div:last-child {overflow-y:scroll; ''不工作?這是IE7要求還是其他的限制? – RedYetiCo