我有以下设计
如何让橙色div从头到尾扩展,如果内容更大则滚动,但同时将页脚保持在页面底部?
我尝试使用position:absolute
和bottom:footers's height
将div设置为overflow-y:scroll
,但如果我这样做,它会与头部重叠。
答案 0 :(得分:2)
您可以将header
和footer
元素分别设置为顶部和底部position: fixed
。在那里,您只需要将padding-top
和padding-bottom
添加到中央内容div,以便其中的内容不会重叠。试试这个:
<header></header>
<div id="content"></div>
<footer></footer>
header {
height: 150px;
position: fixed;
top: 0;
width: 100%;
}
#content {
padding: 150px 0 100px;
}
footer {
height: 100px;
position: fixed;
bottom: 0;
width: 100%;
}
答案 1 :(得分:1)
我理解,标题应该与页面一起滚动,与页脚不同,所以最简单的解决方案就是:给出fotter position: fixed
和bottom: 0
以及div {{1}其中X是页脚的高度。
答案 2 :(得分:1)
你需要这样的东西吗?
body {text-align:center}
.header {position:fixed; top:0; left:0; right:0; height:50px; background:orange; color:white;}
.content {box-sizing:border-box; min-height:200vh; padding-top:50px; padding:bottom:50px;}
.footer {position:fixed; bottom:0; left:0; right:0; height:50px; background:red; color:white;}
<div class="header">header</div>
<div class="content">content</div>
<div class="footer">footer</div>
通过设置box-sizing:border-box;
和min-height:100vh;
,您可以将最小高度设置为窗口高度,而不管填充或边框。
答案 3 :(得分:1)
我想我知道你需要什么。
#H,#B,#F{
widht: 100%;
color: black;
text-align: center;
}
#H{
background: Orange;
height: 100px;
position: absolute;
top: 0;
left: 0;
right: 0;
}
#B{
background: White;
position: absolute;
bottom: 100px;
top: 100px;
left: 0;
right: 0;
overflow-y: scroll;
}
#F{
background: gray;
height: 100px;
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
<div id="H">Header</div>
<div id="B">Body<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
<div id="F">Footer</div>