css - 将 div 放在视口(viewport)底部而不覆盖以前的内容

标签 css

我有一个外部 div,称为#wrap,还有两个内部 div:#container 和#footer。内容在#container 中,并且是动态的。可能有一点,可能有很多。

当内容很少时,页脚 div 可能会出现在页面的中间位置。但是,这会根据显示器/分辨率而变化。在大型显示器上距底部 50% 的部分在小/杂乱的视口(viewport)上可能仅距底部 10%。

如果我使用这个 css 方法:

body,html { height: 100%; }
#wrap     { position:relative; min-height:100%; }
#container{ margin:0px 0px 50px 0px; }
#footer   { position:absolute; bottom:0px; }

然后页面将始终扩展以使用 100% 的视口(viewport),并且页脚将位于视口(viewport)的底部 - 完全符合要求。

但是,如果内容增加(或者如果视口(viewport)变小),页脚可能会覆盖任何延伸到其 130 像素高度的内容——页脚不会向下倾斜。

有办法解决这个问题吗?

注意:我不希望使用百分比作为页脚高度,因为它固定为 130 像素并且无法压缩。

Here is a fiddle I've been using to experiment

最佳答案

这是我见过的最好的粘性页脚示例:http://ryanfait.com/resources/footer-stick-to-bottom-of-page/

更新(2017 年 4 月): 由于上述链接已无法操作(自原始帖子发布以来已经过去了很长时间),我想针对此问题提供以下解决方案:

永久固定:

#container {
    padding-bottom: 130px; // ...or more
}

#footer {
    bottom: 0;
    height: 130px;
    position: fixed;
    width: 100%;
}

对于动态固定的元素,查看这个 jQuery 插件:https://libraries.io/bower/jquery-sticky-header-footer

关于css - 将 div 放在视口(viewport)底部而不覆盖以前的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982708/

相关文章:

css - 将一个类应用于正文并更改 CSS 中的各种#id

html - 使用 float 元素的三列标题

javascript - 侧滚动图像,但图像发生变化

html - 如何以较小的宽度和高度显示整个图片

javascript - 使用 javascript 更改 Bootstrap 3 导航栏的背景不透明度

css - Bootstrap 导航菜单换行

javascript - 为什么 IE8 在我的菜单栏和页面内容之间显示空白 GAP?

html - 定位嵌套在两个 div 类中的元素

css - 对于任何元素,在 CSS 重置(以及 eric meyer 重置)中包含哪些其他内容会很好

html - Bootstrap Span 偏移量和背景颜色,如何避免为偏移量着色?