我有这个问题,我有两个股利:
<div style="width:100%; height:50px;" id="div1"></div>
<div style="width:100%;" id="div2"></div>
如何使div2占据页面的剩余高度?
我有这个问题,我有两个股利:
<div style="width:100%; height:50px;" id="div1"></div>
<div style="width:100%;" id="div2"></div>
如何使div2占据页面的剩余高度?
Answers:
您可以使用此http://jsfiddle.net/Victornpb/S8g4E/783/
#container {
display: table;
width: 400px;
height: 400px;
}
#container > div{
display: table-row;
height: 0;
}
#container > div.fill{
height: auto;
}
只需将课程应用.fill
到任何孩子上,然后占据剩余的身高即可。
<div id="container">
<div>
Lorem ipsum
</div>
<div>
Lorem ipsum
</div>
<div class="fill"> <!-- this will fill the remaining height-->
Lorem ipsum
</div>
</div>
它可与您想要的孩子数量一起使用,不需要额外的标记。
div
withdisplay: table
不是一张桌子。
<table>
不应将类似的语义元素用于布局目的。 display: table
提供了一种在不暗示相同语义的情况下获得相似行为的方式。
使用CSS表,您可以将div包裹在那里,并使用以下css / html结构:
<style type="text/css">
.container { display:table; width:100%; height:100%; }
#div1 { display:table-row; height:50px; background-color:red; }
#div2 { display:table-row; background-color:blue; }
</style>
<div class="container">
<div id="div1"></div>
<div id="div2"></div>
</div>
但是,取决于哪些浏览器支持这些显示类型。我认为IE8及以下版本不支持。编辑:从头开始-IE8确实支持CSS表。
我本人也面临同样的挑战,并使用flex
属性找到了这两个答案。
的CSS
.container {
display: flex;
flex-direction: column;
}
.dynamic-element{
flex: 1;
}
我尝试使用CSS,或者您需要使用display:table,或者需要使用大多数浏览器尚不支持的新CSS(2016年)。
所以,我写了一个jquery插件来为我们做,我很乐意分享:
//Credit Efy Teicher
$(document).ready(function () {
$(".fillHight").fillHeight();
$(".fillWidth").fillWidth();
});
window.onresize = function (event) {
$(".fillHight").fillHeight();
$(".fillWidth").fillWidth();
}
$.fn.fillHeight = function () {
var siblingsHeight = 0;
this.siblings("div").each(function () {
siblingsHeight = siblingsHeight + $(this).height();
});
var height = this.parent().height() - siblingsHeight;
this.height(height);
};
$.fn.fillWidth = function (){
var siblingsWidth = 0;
this.siblings("div").each(function () {
siblingsWidth += $(this).width();
});
var width =this.parent().width() - siblingsWidth;
this.width(width);
}
* {
box-sizing: border-box;
}
html {
}
html, body, .fillParent {
height: 100%;
margin: 0;
padding: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div class="fillParent" style="background-color:antiquewhite">
<div>
no1
</div>
<div class="fillHight">
no2 fill
</div>
<div class="deb">
no3
</div>
</div>
您可以使用calc
函数来计算第二格的剩余高度。
*{
box-sizing: border-box;
}
#div1{
height: 50px;
background: skyblue;
}
#div2{
height: calc(100vh - 50px);
background: blue;
}
<div id="div1"></div>
<div id="div2"></div>
<div>
<div id="header">header</div>
<div id="content">content</div>
<div id="footer">footer</div>
</div>
#header {
height: 200px;
}
#content {
height: 100%;
margin-bottom: -200px;
padding-bottom: 200px;
margin-top: -200px;
padding-top: 200px;
}
#footer {
height: 200px;
}
#div2
比窗口高时,会发生什么?