想让div填满页面剩余空间,最简易的方式还是靠提前的布局。
这里提供两种方法:
(1)利用 height 样式的%比例设置布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
padding: 0px;
margin: 0px;
}
html,body,#page{
height: 100%;
100%;
}
</style>
</head>
<body>
<div id="page">
<div style="height: 20%; background:silver"></div>
<div style="height: 80%; background:gray"></div>
</div>
</body>
</html>
(2)利用 table
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
padding: 0px;
margin: 0px;
}
html,body,#page{
height: 100%;
100%;
}
#tdcontent {
height: 100%;
background: silver;
}
#content {
overflow: auto; /* or overflow: hidden; */
}
</style>
</head>
<body>
<table id="page">
<tr>
<td id="tdheader">
<div id="header">header</div>
</td>
</tr>
<tr>
<td id="tdcontent">
<div id="content">content</div>
</td>
</tr>
</table>
</body>
</html>
(3)利用绝对定位,算出上面元素的height,将top属性设为该值,并设置bottom为0。