[英]Auto adjust div height with CSS
假設另一個有六個div。
第1,第2和第3 div具有固定高度,例如25px,100px和25px。 第4個div是內容區域,應該是自動調整div。 第5個div有一些內容,最小高度為100px(高度不固定)。 第6個div是一個具有固定高度的頁腳,例如25px。
第5和第6個div應始終位於頁面底部(不粘)
當第4個div(div_auto_height)包含大量內容並且頁面與屏幕一樣長或更長時,沒有問題。
當頁面比屏幕短並且第6個div之后出現空白空間時,會出現問題。 然后第5和第6分區不是他們應該的位置。
如果可以自動調整第4個div(div_auto_height)的高度以填充空白區域,則問題將得到解決。
如果沒有一個像樣的解決方案,我一直試圖以多種方式解決這個問題。
不工作解決方案:
這是您修改的模板:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>No title</title>
<style type="text/css">
html {
height: 100%;
}
body {
height: 100%;
margin: 0;
}
#div1 {
height: 25px;
background-color: #123456;
}
#div2 {
height: 100px;
background-color: #345678;
}
#div3 {
height: 25px;
background-color: #567890;
}
#div_auto_height {
height: auto ;
background-color: #789012;
}
#div5 {
min-height: 100px;
background-color: #901234;
}
#div6 {
height: 25px;
background-color: #123456;
}
</style>
</head>
<body>
<div id="div1">Div 1</div>
<div id="div2">Div 2</div>
<div id="div3">Div 3</div>
<div id="div_auto_height">This div should adjust automatically</div>
<div id="div5">Div 5</div>
<div id="div6">Div 6</div>
</body>
</html>
</body>
</html>
我相信你應該用javascript來解決這個問題。 有很多易於使用的javascript框架,比如jquery。
你應該做什么:
就這樣! 如果您需要一些代碼,請告訴我。
編輯:我沒有找到代碼,但我記得我使用了jquery維度 。 你可以在那里找到示例代碼!
沒有CSS方法為屬性賦予值“總屏幕高度 - 一些固定像素”。 使用Javascript。
更改
#div_auto_height {
height: auto ;
background-color: #789012;
}
至
#div_auto_height {
height: 100% ;
background-color: #789012;
}
或許你需要這個:
#div_auto_height {
height: calc(100% - 275px); ;
background-color: #789012;
}
這可能不是最適合您的解決方案,但如果您知道第5和第6個div的max-height
,則可以使用position: absolute
和padding
(設置為max-height
值)來實現結果:
<div id="wrapper">
<div class="div-25"></div>
<div class="div-100"></div>
<div class="div-25"></div>
<div id="content">
<div class="fluid">
</div>
</div>
</div>
<div id="container">
<div class="footer">
<div class="div-25"></div>
</div>
</div>
CSS:
html, body {
margin: 0;
height: 100%; }
div { width: 100%; }
#wrapper { min-height: 100%; }
.div-25 {
background: green;
height: 25px; }
.div-100 {
background: grey;
height: 50px; }
#content { padding: 0 0 150px; } /* Max Height */
.fluid {
background: red;
height: 100px; }
#container { position: relative; }
.footer {
background: blue;
position: absolute;
bottom: 100%;
min-height: 100px; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.