【问题标题】:Footer not sticking to bottom页脚不粘在底部
【发布时间】:2013-01-20 18:23:49
【问题描述】:

我的页脚在整个博客页面的底部都出现问题。我遇到两个问题。首先,如果我使用position:absolute,页脚会上升到主博客页面的中间。如果我不理会它,它会粘在底部,但会在博客的整个页面上上升到中间。页脚是我一直遇到的问题。

这是我当前的页脚 CSS 样式

footer {
text-align: left;
background-color: #f4f4f4;
padding-top: 40px;
padding-bottom: 40px;
z-index: 1;
bottom:0;
width:100%;
}

这是页面链接http://pixelogicblog.tumblr.com/post/41025998534/tes-post

【问题讨论】:

    标签: html css blogs tumblr


    【解决方案1】:

    查看使用 CSS 的粘性页脚解决方案:

    http://ryanfait.com/sticky-footer/

    position: absolute 的页脚仅位于页面一半的原因是您没有在 body 和 html 元素上设置最小高度。没有它,body 只会占用与它的内容一样多的空间 - 然后页脚与底部对齐,而不是与窗口的底部对齐。

    尝试将其添加到您的 CSS 中,使其至少占据窗口的高度:

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

    【讨论】:

    • 谢谢!这修复了主要的博客页脚,但我仍然在整个页面上获得了位于中间的页脚。虽然允许正文和 html 内容超出其预期高度是有意义的。
    • 让粘性页脚正常工作(因此当内容较短时它会粘在窗口底部,但当内容变长时会随着内容滚动)有点棘手。我建议 ryanfait 采用第二种方法。从那里复制 HTML 结构和布局 CSS 就可以了。 :)
    • 顺便说一句,您的页面滥用了<header> 元素。该元素仅用于页眉,但您将其用于不在页脚中的整个页面。
    • 这与用于显示帖子的 Tumblr 代码有关。我使用了 Ryanfait 的代码并得到了相同的结果,使用 Tumblr 代码......
    【解决方案2】:

    你见过吗?

    http://matthewjamestaylor.com/blog/keeping-footers-at-the-bottom-of-the-page

    跨浏览器(IE6+ 也是)且易于理解。

    巧合的是,您当前的页脚没有出现在页面底部,因为它的位置设置为relative,将其位置设置为absolute,它将位于页面底部(只要页面不超过视口)。相对定位仅设置元素相对于正常位置的位置,例如,如果您在 footer 元素上设置 bottom: -10px,那么它看起来会比原本的位置低 10 个像素(希望我说得通那里!)

    如果您绝对定位某些东西,它绝对定位到 body 标签,或者位置设置为 relative 的下一个最近的父级(无论如何我都理解)

    【讨论】:

    • 我明白你们在说什么,但它似乎不起作用。我的页面视点高度为 100%,页脚位置设置为绝对值。它应该工作!
    • 你需要在 body 中添加一个 div 来包装所有 id 为 container 的内容,然后给它以下规则:min-height: 100%; position: relative; 然后给你的 header 元素 140px 底部填充,然后更改min-heightheight 用于 htmlbody 元素
    • 希望应该这样做,我还要花时间说将您的内容包装在 header 元素中在语义上非常不正确......你 header元素应该只包含所述文档的标题,您应该将主要内容包装在 div 中
    【解决方案3】:

    将位置设置为绝对

    position:absolute;
    

    【讨论】:

      【解决方案4】:

      需要注意的是,除了static(默认值)之外的任何定位都会将其从文档流中移除。我解决这个问题的方法是在正文内容中添加margin-bottom,等于#Footer 的高度。这样做可以确保页脚后面始终有一个空白空间,等于它的高度,防止它与内容重叠。使用absolutefixed 会导致内容重叠。

      【讨论】:

        【解决方案5】:

        如果你想把页脚贴在底部,你可以在headermain contentfooter上使用带有viewheight单位的min-height

        例子:

        <header style="min-height: 10vh">...</header>
        <div id="main-content" style="min-height: 85vh">...</div>
        <footer style="min-height: 5vh">...</footer>
        

        这样,如果您没有将所有视图高度用于您的内容,页脚仍将停留在底部。这是我发现将页脚粘贴在底部的最佳方法。

        希望对少数人有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-19
          • 1970-01-01
          • 2012-09-10
          • 1970-01-01
          相关资源
          最近更新 更多