我有一个案例,我没有看到解决方案。这是我的问题:
我有一个页面有三个部分(页眉,部分和页脚)页脚必须一直刷到底部。部分部分应该占据页眉和页脚之间的所有可用位置,但必须具有根据页面不同的最小高度(我将在CSS上手动设置它)。
当达到最小高度时,应该可以在整个页面上滚动。
以下是我用来设置标题,段和页脚占用所有可用位置的代码示例。
CSS
body {
margin: 0
}
header, section, footer {
left:0;
right:0;
overflow: hidden;
position: absolute;
}
header {
height: 70px;
top: 0;
background-color: green;
}
section {
top: 70px;
bottom: 195px;
background-color: gray;
min-height:300px;
}
article {
overflow: hidden;
background-color:lightyellow;
}
.news {
position: absolute;
bottom: -30px;
width: 100%;
background-color: lime;
}
footer {
height: 195px;
bottom: 0;
background-color: pink;
}
HTML
<header>
<div class="container">
<h2>My header</h2>
</div>
</header>
<section>
<article>
<div class="news">
<div class="row-fluid">
<a href="#">UP</a>
</div>
<div class="row-fluid">
<div class="container">
<div class="span6">News 1</div>
<div class="span6">News 2</div>
</div>
</div>
</div>
</article>
</section>
<footer>
<div class="container">
My footer
</div>
</footer>
示例提供了一个jsfiddle:http://jsfiddle.net/Nk6uY/
修改
如何在我的部分添加最小高度,当它到达时我的窗户上有一个滚动条?
修改2
我将添加有关我的问题的更多信息。首先,我在section标签内的大部分内容都将以绝对值设置。并稍微隐藏并出现在动作(主要是javascript)上。出于这个原因,我知道每个部分,如果有人点击链接,我需要查看我的所有内容的最小高度。
对于我的例子,div新闻是隐藏的,当你点击它时,至少需要360px才能看到。但是,如果我的窗户比这个小,我的窗户上没有卷轴,所有内容都被页脚覆盖。
答案 0 :(得分:0)
你只能通过javascript实现这一点 - 你需要提供你的标题,部分和页脚ID,然后使用这样的东西:
function ResizeBody() {
var header = document.getElementById("Header");
var section = document.getElementById("Section");
var footer = document.getElementById("Footer");
var height = GetBodyHeight() - header.offsetHeight - footer.offsetHeight - anyPaddingToTopOrBottomOfThreeMainSections;
if (height > 0) {
body.style.height = height + "px";
}
}
function GetBodyHeight() {
if (window.innerHeight > 0) {
return window.innerHeight;
}
else {
return document.documentElement.clientHeight;
}
}
window.onresize = function () {
ResizeBody();
};
$(document).ready(function () {
ResizeBody();
});
<强>更新强>
抱歉,我认为我读错了这个问题 - 您是否希望该部分增长到屏幕尺寸,或者如果有太多内容有滚动条,您是否手动设置它?
在这种情况下你应该只设置部分的高度(而不是最小高度)而不是溢出:隐藏使用溢出:滚动;