当前位置:  开发笔记 > 前端 > 正文

如何创建div来填充页眉和页脚div之间的所有空格

如何解决《如何创建div来填充页眉和页脚div之间的所有空格》经验,为你挑选了3个好方法。

我正在努力从使用表格进行布局,再到使用div(是的,是的辩论).我有3个div,标题,内容和页脚.页眉和页脚各50px.如何让页脚div保持在页面底部,内容div填充两者之间的空间?我不想硬编码内容div高度,因为屏幕分辨率可能会改变.



1> Jeremy..:

总结(这来自Traingamer提供的CSS Sticky Footer链接),这就是我使用的:

html, body 
{ 
    height: 100%; 
} 

#divHeader
{
    height: 100px;
}

#divContent
{
    min-height: 100%; 
    height: auto !important; /*Cause footer to stick to bottom in IE 6*/
    height: 100%; 
    margin: 0 auto -100px; /*Allow for footer height*/
    vertical-align:bottom;
}

#divFooter, #divPush
{
    height: 100px; /*Push must be same height as Footer */
}

Header
Content Text
Footer



2> Reggie Pinkh..:
Flexbox解决方案

使用flex布局我们可以实现这一点,同时允许自然高度页眉和页脚.页眉和页脚都将分别粘贴到视口的顶部和底部(很像本机移动应用程序),主内容区域将填充剩余空间,而任何垂直溢出都将在该区域内滚动.

见JS小提琴

HTML


  
...
...
...

CSS

html, body {
  margin: 0;
  height: 100%;
  min-height: 100%;
}

body {
  display: flex;
  flex-direction: column;
}

header,
footer {
  flex: none;
}

main {
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  flex: auto;
}


看起来这应该是正确的答案,我认为接受的答案已经过时了.

3> Traingamer..:

要扩展Mitchel Sellers的答案,请给出内容div高度:100%并给它一个自动余量.

有关完整的解释和示例,请参阅Ryan Fait的CSS Sticky Footer.

由于您知道标题的大小(高度),因此将其放在内容div中(或使用边距).

如果您的内容比窗口更大(更高),绝对位置会给您带来问题.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有