我有这段简化的代码:
This is a line of text<br/>
<div style="background-color: orange; height: 100%">And this is a div</div>
的高度最终将成为浏览器窗口客户区域高度的100%,加上文本行的高度后,会超过窗口高度,因此您需要滚动。
如何使
的高度等于浏览器窗口的高度 减去 文本行的高度?
或者换句话说,如何使
在垂直方向上占用所有自由空间,而不管其他DOM对象已经占用了多少空间?
<style>
.container{
position: relative;
height: 100%;
}
.top-div{
/* height can be here. if you want it*/
}
.content{
position:absolute;
left: 0;
right: 0;
bottom: 0;
top: 1em; /* or whatever height of upper div*/
background: red;
}
</style>
<div class="container">
<div class="top-div">This is a line of text</div>
<div class="content">And this is a div</div>
</div>
来源 - http://www.codingforums.com/archive/index.php/t-142757.html
这是一个关于IT技术的问题。我将尽力为您提供更好的翻译。最终,您需要一个容器。 "overflow: hidden" 将隐藏任何溢出容器的内容。如果我们不使用它,那么您将会看到上面提到的问题,即 "...超过窗口高度,因此您必须滚动"。
<div id="container" style="color:white;height:500px;background-color:black;overflow:hidden;">
This is the container
<div style="height:100%;background-color:orange;">
This div should take the rest of the height (of the container).
</div>
</div>
带有溢出隐藏的示例: http://jsbin.com/oxico5
不带溢出隐藏的示例: http://jsbin.com/otaru5/2
overflow:hidden
将截断该内容... - Bazzz使用display: table;
可以相当优雅地完成,而无需知道任何显式高度值。
演示在这里: http://codepen.io/shanomurphy/pen/jbPMLX
html, body {
height: 100%; // required to make .layout 100% height
}
.layout {
display: table;
width: 100%;
height: 100%;
}
.layout__row {
display: table-row;
}
.layout__cell {
display: table-cell;
vertical-align: middle;
}
.layout__cell--last {
height: 100%; // force fill remaining vertical space
}
<div class="layout">
<div class="layout__row">
<div class="layout__cell">
Row 1 content
</div>
</div>
<div class="layout__row">
<div class="layout__cell layout__cell--last">
Row 2 fills remaining vertical space.
</div>
</div>
</div>