无法使页脚转到页面底部

Posted

技术标签:

【中文标题】无法使页脚转到页面底部【英文标题】:Unable to make footer go to bottom of page 【发布时间】:2014-01-11 01:09:25 【问题描述】:

我在尝试实现粘性页脚时遇到了一些问题,即让页脚停留在页面的最底部,我认为这个问题是由于我使用 2 个 div 为我的页面呈现圆角,我已经搜索了所有可能的解决方案并尝试了它们,但没有任何效果。

所以基本上,这是我的设计:

<div class="global">
    <div class="wrapper">
        <div class="banner"></div>
        <div class="content"></div>

        <div class='footer'>
        <div class='footercontent'>COPYRIGHT INFO</div></div>
    </div>
</div>

这是我的 CSS:

body 
font-family: Verdana, Geneva, sans-serif;

#global 
 margin: 0 auto;
 width: 85%;
 min-width: 1020px;

.wrapper  
  background: #FFFFFF; 

.footer  
  background: url('../Images/roundedcornerRIGHT.gif') no-repeat bottom right; 

.footer div 
  height: 40px; 
  background: url('../Images/roundedcornerLEFT.gif') no-repeat bottom left; 

.footercontent 
    text-align: center;
    font-size: small;

无论我尝试其他人在 *** 上发布的哪种解决方案,都没有任何效果,它要么无法将页脚向下移动到页面底部,要么只是弄乱了页脚的圆角布局。

【问题讨论】:

问题是你的#global 元素没有到达底部。使用 Firebug 来检查它,或者在你的 css 中给它加上一个边框,这将变得清晰。你需要让它去底部,然后你的页脚可以移动到底部。注意:要让它跨越整个高度,你可能想要做类似html, body height: 100%; 然后`#global height: 100%; @BuddhistBeast 理论上是的,但是因为这是我的代码的提取部分,所以我不确定它是否完全代表我正在做的事情。 @cale_b 你是对的,我尝试设置边框,没有一个 Div 向下延伸到页面底部,即使在添加 height:100% 之后;到 #global 和 body。 我的问题是......你需要拥有那个全局 div 还是只需要包装器就足够了?所有的测量都是一成不变的吗?我问的原因是因为1020px很多..我认为现在的标准是960px。 真的吗?因为我是根据我的屏幕设计的,所以猜这是一个错误的举动。但是如果我缩小到 1020px 以下,导航栏会自行折叠并换行,看起来不太好.. 嗯,这不是问题的重点,我想我们可以忽略它。 【参考方案1】:

试试这个:

.footer  
  background: url('../Images/roundedcornerRIGHT.gif') no-repeat bottom right; 
  position: absolute;
  bottom: 0;

【讨论】:

不起作用,整个页脚似乎已经脱离了包装并调整了自身大小,我的网页使用的是流体设计,所以我的意思是页脚的宽度大小不一样作为主要设计了。看这张图片:img809.imageshack.us/img809/5605/xvti.png【参考方案2】:

如果您希望底部有页脚,请为您的内容指定一个最小高度。

min-height: 800px; 

【讨论】:

这行得通,但没有人会为流畅的页面设计硬编码最小高度,网站的每个访问者都会使用不同的屏幕分辨率。 你试过了吗?***.com/questions/9642460/…【参考方案3】:

将您的标记更改为:

<body>
<div class="wrapper">
        <div class="banner"></div>
        <div class="content"></div>
   </div>

  <div class='footer'>
        <div class='footercontent'>COPYRIGHT INFO</div></div>
    </div>
</body>

然后添加这些样式:

.footer 
 position:fixed;
 left:0px;
 bottom:0px;
 width:100%;

【讨论】:

试过了,但我必须删除“left:0px;”和“宽度:100%;”因为我使用的是非 100% 宽度的居中设计。但删除它后,会发生这种情况:img809.imageshack.us/img809/5605/xvti.png【参考方案4】:

好的,假设你想保留你目前正在做的一切......我有一个快速解决方案给你。现在,有几点需要注意。我确实在您的“包装器”类中添加了一个高度变量,因为我需要衡量它,就好像包装器本身内部有空间一样。我还继续添加了几种颜色,让我确切地知道我在哪里。无论哪种方式,最简单的解决方法是将页脚 div 放在包装器之外。这一切的工作方式是,页脚出现在包装类中,唯一的问题是该类中没有其他任何东西出现,这导致页脚是唯一的东西.. 产生了这个页脚的问题在顶部。但是,如果您想保持每个页面的最新状态,将页脚向下移动到全局 div 的底部应该是您的解决方法,下面的代码:

<div class="global">
    <div class="wrapper">
        <div class="banner"></div>
        <div class="content"></div>
    </div>
    <div class='footer'>
        <div class='footercontent'>COPYRIGHT INFO</div>
    </div>
</div>

所以问题出在 HTML,而不是 CSS。您可以保留您的 CSS 或随意使用它,但为了更好地描述我在说什么,我一直在为您摆弄(哈哈)JsFiddle :) 如果我需要更了解我是什么,请在下面评论说!

【讨论】:

这就是为什么我没有将页脚 div 移出包装器的原因:img541.imageshack.us/img541/57/nxq1.png 从技术上讲..“全局”是你的包装器,而不是包装器。你可以通过简单地取出“全局”div然后将页脚仍然放在包装器的底部来改变它。 这就是你的代码没有“全局”div jsfiddle.net/XqNzp/3 时的样子,它仍然可以正常工作。 我不认为全局 div 与这个问题有任何关系,在将页脚 div 移出包装器后,它似乎已经与它“断开连接”,因此,内容和圆角在页脚不会一起流动和连接。就像你在上图中看到的那样。 您是否试图让一切都保持联系?喜欢在您的页脚和其他内容之间没有空格?

以上是关于无法使页脚转到页面底部的主要内容,如果未能解决你的问题,请参考以下文章

CSS:即使在滚动时也使页脚始终位于页面底部

CSS 使页脚粘贴到页面的底部

如何使页脚固定在页面底部

页面内容不足时如何使页脚移至底部

当您有不同高度的页面时,如何使页脚位于所有屏幕尺寸的底部?

使页脚被内容推离页面,但在不是整页内容时停留在底部