我有一個3行的頁面。第一行是150px的固定高度,最後一行是120px的固定高度。我需要中間行根據窗口的高度進行調整,以便所有三行都可見,並且沒有可見的滾動條。中間行必須動態調整,以便即使在加載後,如果將瀏覽器窗口移動到另一個較小的屏幕,中間行也必須相應地進行調整。其次,中間行必須使其內容垂直中間和水平居中。任何幫助表示讚賞。使div動態變化高度
回答
CSS的高度:
.first-row {
height: 150px;
}
.middle-row {
height: calc(100vh - 150px - 120px);
}
.last-row {
height: 120px;
}
I打算用flexbox製作一支筆,但@Kevin Farrugia打敗了我。使用它比「display:table-cell;」更好。 –
請記住,並不總是支持以下技術: calc:http://caniuse.com/#feat=calc 視口單元:http://caniuse.com/viewport-units/embed/ –
謝謝Ben您的解決方案已運行。現在我該如何垂直對齊中間行內容? –
運行在全頁模式的代碼片段(!)。使用css calc
函數來自動計算中間容器的高度。
body {
margin: 0;
}
.top {
background-color: #f0f0f0;
height: 150px;
}
.bottom {
background-color: #ddd;
height: 120px;
}
.middle {
background-color: teal;
display: table-cell;
height: calc(100vh - 270px);
text-align: center;
vertical-align: middle;
width: 100vw;
}
<div class="top">TOP</div>
<div class="middle">MIDDLE</div>
<div class="bottom">BOTTOM</div>
個人清潔的解決方案是使用flexbox
:
.container {
display: flex;
flex-direction: column;
}
.dynamic {
flex: 1 1 auto;
}
Flexbox是更好的解決方案,我只是在做一個codepen! –
如所建議的,嘗試使用Flexbox的:
<style>
.container {
display: flex;
flex-flow: column wrap;
align-items: stretch;
height: 100%;
}
.row{}
.row.row1{height: 150px;}
.row.row2{flex: 1 1 auto;}
.row.row3{height: 120px;}
</style>
<div class="container">
<div class="row row1">First row</div>
<div class="row row2">Middle row</div>
<div class="row row3">Final row</div>
</div>
使用此時,不要忘記添加您的供應商前綴。
我用flexboxes這些東西:A Complete Guide to Flexbox
.container {
display: flex;
flex: 1 1 auto;
flex-direction: column;
}
.header {
height: 50px;
background-color: green;
flex: 0 0;
}
.footer {
height: 30px;
background-color: red;
flex: 0 0;
}
.content {
background-color: blue;
flex: 1 1 auto;
min-height: 50px;
}
<div class="container">
<div class="header"></div>
<div class="content"></div>
<div class="footer"></div>
<div>
- 1. 動態變化表高度
- 2. 動態UITableViewCells高度變化
- 3. 動態DIV高度
- 4. 使用動態高度頁腳滾動動態高度div
- 5. 如何讓div在高度變化時自動改變高度?
- 6. 如果高度變化,滾動HTML div
- 7. 基於其他div動態高度的動態div高度
- 8. jquery |動態改變div的高度onresize
- 9. 動態改變div的高度
- 10. 動態改變div的高度,以父
- 11. 動態高度DIV滾動
- 12. CSS維持div的高度變化的內容時動態
- 13. flexslider中#container div的高度動態變化
- 14. 動態高度的div
- 15. jQuery - 動態div高度
- 16. 動態DIV高度不IE8
- 17. 動態DIV容器高度
- 18. CSS - 動態DIV高度
- 19. 當div的高度發生變化時動畫變化
- 20. 動態調整中心divs在另一個div內動態變化的高度
- 21. 當源高度動態變化時,iframe高度不會發生變化
- 22. IOS對高度的限制(動態高度變化)
- 23. 如何使用AngularJS動畫div高度變化
- 24. 爲動態高度的div內的div分配100%的高度
- 25. 動態改變一個DIV的基於另一個DIV高度
- 26. 在另一個div中動態改變div的高度
- 27. xamarin.forms - 如何使ViewCell高度動態化
- 28. 動畫DIV在高度和寬度上的變化
- 29. 基於窗口高度和第二div高度的Javascript動態div高度
- 30. 動態高度可滾動div
也請發表您的代碼? – prasanth
你可以從'$(window).height()'獲得窗口高度,然後使用'position:fixed; btw'來計算容器的高度,所有主容器都是設計佈局的可怕方法。 – Sojtin
使用100vh從CSS獲得高度比使用JS好得多。你的代碼也依賴Jquery –