使以下div扩展到底部,然后滚动

时间:2015-07-08 07:51:39

标签: html css

我有以下设计

enter image description here

如何让橙色div从头到尾扩展,如果内容更大则滚动,但同时将页脚保持在页面底部?

我尝试使用position:absolutebottom:footers's height将div设置为overflow-y:scroll,但如果我这样做,它会与头部重叠。

4 个答案:

答案 0 :(得分:2)

您可以将headerfooter元素分别设置为顶部和底部position: fixed。在那里,您只需要将padding-toppadding-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%;
}

Example fiddle

答案 1 :(得分:1)

我理解,标题应该与页面一起滚动,与页脚不同,所以最简单的解决方案就是:给出fotter position: fixedbottom: 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>