回答
藉助Flexbox,就可以做這
html, body {
margin: 0;
}
body {
display: flex; /* IE fix */
}
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%; /* IE fix */
}
.top, .bottom {
flex: 1; /* fill remaining space */
background: lightblue;
}
.middle {
background: lightgreen;
}
<div class="container">
<div class="top">
</div>
<div class="middle">
Content
</div>
<div class="bottom">
</div>
</div>
如果你需要,你還可以添加一個min-height
到top
/bottom
元素
html, body {
margin: 0;
}
body {
display: flex; /* IE fix */
}
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%; /* IE fix */
}
.top, .bottom {
flex: 1; /* fill remaining space */
background: lightblue;
min-height: 200px; /* set a min-height */
}
.middle {
background: lightgreen;
}
<div class="container">
<div class="top">
</div>
<div class="middle">
Content
</div>
<div class="bottom">
</div>
</div>
.top{
min-height:100px;
}
.bottom{
min-height:100px;
}
,或者你可以使用不同的meseurment - 像VH - 的觀點高度等 忘了補充 - 它會進入你的CSS文件
但這不會填充剩餘空間。 – KevinKelbie
你想使用jQuery嗎?你需要使用動態計算,如果是的話,我可以告訴你簡短的jQuery功能,可以幫助你 –
當然,如果這是最簡單的方法。謝謝您的幫助! :) – KevinKelbie
這裏是你較真表的解決方案。
html, body {
margin: 0;
height:100%;
}
.container {
display: table;
height: 100%;
width: 100%;
}
.container > div {
display: table-row;
}
.table-cell {
display: table-cell;
}
.top, .bottom {
background: #ADD8E6;
}
.middle {
background: #90EE90;
height:1px;
}
<div class="container">
<div class="top">
<div class="table-cell">
</div>
</div>
<div class="middle">
<div class="table-cell">
Content
</div>
</div>
<div class="bottom">
<div class="table-cell">
</div>
</div>
</div>
另一個偉大的解決方案謝謝!這比柔性解決方案更友好嗎? – KevinKelbie
不使用flexbox的唯一原因是如果你想支持IE9。同樣在具有複雜結構的大型網站上,flexbox可以稍微增加頁面加載時間。我個人只有在沒有其他方法來實現我想要的佈局時才使用flexbox。所有人都說,在這種情況下,我看不到使用flex的任何問題。 – WizardCoder
- 1. 使內容div填充剩餘高度
- 2. CSS填充剩餘寬度
- 3. 輸入元素填補剩餘寬度
- 4. 設置div高度以填充剩餘高度
- 5. Flexbox拉伸div高度以填充父div的剩餘高度
- 6. 輸入元素來填充其容器的剩餘寬度
- 7. 填充包含元素的剩餘寬度
- 8. 填充元素和剪切文本之間的剩餘寬度
- 9. 讓跨度填充剩餘寬度?
- 10. 獲取<canvas>元素以填充父div中的剩餘高度?
- 11. 2 TextViews平均填充剩餘空間
- 12. 製作格填充剩餘寬度:內
- 13. 填寫動態div的剩餘高度
- 14. IE8剩餘高度
- 15. div用絕對填充家長的剩餘高度
- 16. Android GridView高度自動填充剩餘空間
- 17. 兒童DIV用可滾動內容填充剩餘高度
- 18. 用可滾動Div填充剩餘高度
- 19. Angular 4 - Google地圖高度填充剩餘空間
- 20. Flex項目 - 填充剩餘容器的高度
- 21. 用CSS填充剩餘的屏幕高度
- 22. 有一個表格填充其容器的剩餘高度
- 23. 填充剩餘空間(CSS)
- 24. ImageView填充剩餘空間
- 25. 如何在「display:table-row」元素中嵌入元素「display:table」以填充MSIE10中的剩餘高度?
- 26. 用Javascript/Jquery(100%高度Web應用程序)填充剩餘高度
- 27. 使用JS刪除元素,但剩餘空間填充
- 28. 填充剩下的高度相對DIV
- 29. CSS股利填充剩下的高度
- 30. DIV填充剩下的高度計算
偉大的迴應,這似乎正是我需要感謝! – KevinKelbie
@WizardCoder我知道你沒有說它是壞的,但再次看看,IE10支持2012年的Flexbox語法,它在上面的代碼中是'display:-ms-flexbox;','-ms-flex-direction :列'和'-ms-flex:1;' – LGSon