在我的网站上,我使用了两个div,其height
应该是in this picture。
所以,有一个div
与height:90px;
对齐到窗口的底部,现在如果我希望第二个div(红色)“填充”其余部分,我该怎么办?窗户?红色div
应该让窗口的height
减去蓝色height
的{{1}},但div
之类的东西不起作用,对吗?
谢谢!
答案 0 :(得分:7)
实际上height: calc(100vh - 90px);
工作
html,
body {
min-height: 100%;
}
* {
margin: 0;
padding: 0;
}
footer {
height: 90px;
background: blue;
}
main {
background: red;
height: calc(100vh - 90px);
}

<main></main>
<footer></footer>
&#13;
但是,如果内容通常会导致垂直滚动,那么您希望如何做出反应并不完全清楚。 然后这可能不是答案。
使用flex-box
html,
body {
min-height: 100%;
}
* {
margin: 0;
padding: 0;
}
.wrap {
display: flex;
flex-direction: column;
flex-wrap:no-wrap;
min-height:100vh;
}
main {
background: red;
flex:1;
}
footer {
flex-basis:90px;
flex-shrink:0;
background: rgba(0, 0, 255, 1);
}
&#13;
<div class="wrap">
<main>
<div class="content"></div>
</main>
<footer>
</footer>
</div>
&#13;
答案 1 :(得分:1)
我不相信如果不使用javascript来获取窗口高度就可以完成。
所以,我会使用一些javascript来获取窗口高度,然后相应地改变顶部元素的高度(假设一个静态页脚)。
<强> HTML 强>
<div class="top" id="top">
</div>
<div class="bottom">
</div>
<强> CSS 强>
.top{
background-color:red;
}
.bottom{
height: 90px;
background-color:blue;
}
<强>的Javascript 强>
var h = window.innerHeight;
document.getElementById("top").style.height = (h - 90) + "px";
答案 2 :(得分:0)
假设您无法在项目中使用calc
;请考虑使用以下JavaScript来设置第一个div的高度。
它是如何运作的:
bottom:0;
load
或resize
时,第一个DIV高度由JavaScript调整。 https://jsbin.com/lunitafuja/1/edit?html,output
<style>
html, body {
margin: 0;
padding: 0;
}
#a {
top: 0;
position: absolute;
background-color: red;
width: 100vh;
}
#b {
position: absolute;
background-color: blue;
width: 100vh;
height: 100px;
bottom: 0;
}
</style>
<script>
window.app = {
start: function () {
var bTop = Math.round(document.getElementById('b').getBoundingClientRect().top);
var a = document.getElementById('a').style.height = bTop + 'px';
}
};
</script>