粘性页脚棒,但内容不会

Posted

技术标签:

【中文标题】粘性页脚棒,但内容不会【英文标题】:Sticky footer sticks, but content won't 【发布时间】:2011-12-08 17:11:37 【问题描述】:

我有一个可以使用的粘性页脚,但我使用的是平铺背景图像和内部#content div。我遇到的问题是#content 不会扩展以填充容器的高度。我在http://jsfiddle.net/mpRUT/1/ 有一个演示,我在其中更改了颜色以进行说明。当页面为空时,唯一可以防止#content 崩溃到被遗忘的是在其上设置的min-height

我可以让它扩展以填充容器,还是我只需要设置一个更大的最小高度并失去一些浏览器?

效果可见http://myfitzeek.lime49.com/

【问题讨论】:

对不起,我真的不明白你的问题,因为我没有看到页脚很粘。 - 我想你想用position: fixed; 定位页脚并纠正位置/边距;并将height 值设置为您的min-height 值。所以你不需要 min-height 属性。 我需要中间的内容部分(白色)向下延伸并覆盖蓝色。我遇到的问题是,在演示站点 (myfitzeek.lime49.com) 上,白色背景没有向下扩展以覆盖平铺的背景图像。 啊,现在下面的部分也是蓝色的。现在我明白了这个问题。谢谢。我会调查一下,看看我是否知道得更好:) 您可以在 #footer 上使用 padding-top: 200px(z-index 为 1,#content z-index 为 2)。它不优雅,但会达到你的视觉效果。 @mdi 当我在网站上使用 firebug 进行测试时,填充仍然与内容重叠(低 z-index 的页脚会剪切正确的内容 [#content with high z-index])。 【参考方案1】:

您很有可能需要设置 min-height: 100%; 并使用负边距减去页脚高度。

#wrapper  margin-bottom: -60px; 
#footer   height: 60px; 

您的目标浏览器是什么?您对最小高度表达了一些担忧——为什么不设计页脚在折叠时看起来可以接受,以便它在旧浏览器中很好地降级?如果您在完成的设计中使用侧边栏,您可以使用.clearfix 技术将页脚强制到底部,这意味着它不一定很明显。

除了在页脚上使用position:fixed; 并在#wrapper 上使用背景图像来提供全高内容窗格的印象,我不知道有什么方法可以无需在#content (like this) 上使用 min-height 即可完成这项工作。

【讨论】:

减去页脚如何工作?我不知道该怎么做,因为 Echilon 混合了容器的绝对 (px) 和相对 (百分比) 大小。 啊,对不起,我措辞不好。 margin-bottom 需要等于页脚高度的负数。见this example。【参考方案2】:

IMO:没有最小高度将无法 100% 工作。 (见 cmets)

我的旧答案:

编辑样本(作为分叉): http://jsfiddle.net/4EtKh/1/

#wrapper: 
    /*min-height:100%;*/ /* remove! */
    position:relative;
    height:100%; /* new! */
    overflow: hidden; /* new! */


#content 
    text-align: left;
    line-height: 140%;
    background: #fff;
    font-size: 1.2em;
    /*min-height: 80px;*/ /* remove! */
    height: 100%; /* new! */

【讨论】:

我将页脚涂成红色,以在视觉上澄清元素。 - 我还在你的页面上用 firebug 测试了这个解决方案。它有效。 谢谢,但这个解决方案的问题是如果#content 的内容太多,我将无法滚动它。 哦,这真是太糟糕了。没想到溢出以这种方式工作。对不起。 如果不使用最小高度,恐怕我想不出任何其他解决方案,因为overflow: scroll; 不是任何人想要的。否则,当内容为空时,您的页脚将始终位于内容的底部,而不是页面的底部。 不过,这是一个很好的答案,感谢您的尝试。我不敢相信这有这么难,我一直在与页脚搏斗。

以上是关于粘性页脚棒,但内容不会的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个页面上获得粘性页脚

粘性页脚覆盖正文内容的底部

具有不同内容高度的粘性页脚,无需页面刷新

粘性页脚问题

javascript 一个js选项,用于将网页页脚推到页面底部,但不会将其作为粘性页脚。

带有侧导航和内容区域的 CSS3/HTML5 粘性页眉/页脚