【问题标题】:Force footer on bottom在底部强制页脚
【发布时间】:2015-06-20 03:43:36
【问题描述】:

好的,当没有足够的内容自然地将页脚推到底部时,我无法将页脚强制放在底部。

我部分解决了问题。这是一个非常简单的设计,我有页眉、内容和页脚,都在 div 包装器中。

html,
body {

margin:0;
padding:0;
height:100%;
font: sans-serif;
}

#wrapper {
min-height:100%;
position:relative;
}

#content {
padding: 2% 5%;
max-width: 940px;
margin: 0 auto;
padding-bottom:80px; /* Height of the footer element */
clear: both;
background-color: yellow;
}

footer {
background:#ffab62;
width:100%;
height:80px;
position:absolute;
bottom:0;
left:0;
font-size: 0.75em;
text-align: center;
padding-top: 30px;
clear: both;
color: #ccc;
}

我使用背景颜色来查看页面上元素的位置。因此,当底部没有足够的内容页脚时,就可以了。当有足够多的内容页脚与其中一些重叠时,当我将位置放在页脚相对而不是绝对页脚上时,它会得到修复,但然后在没有足够内容页脚的页面上没有底部.. 修复另一个不好并修复其他第一页不好..有什么解决方案可以帮助我解决这个问题...

【问题讨论】:

  • 能不能看demo或者有html代码?
  • 这是一个经典问题;有几种不同的场景,更多代码/完整代码或在线演示会有所帮助!

标签: html css


【解决方案1】:

将您的min-height: 调整为您希望页脚结束的最小值,100% 会将其放在您的内容正下方(这应该是默认值,甚至无需声明)你说不够长;制作minimum-height: 900px; 或类似于您希望最小端点位于页脚所在的位置。

如果页脚在 HTML 中的正确位置,但它是向上浮动的。然后考虑以下内容。

display:inline-block;

添加到页脚。

footer {
   display: inline-block;
}

如果这些不起作用,请显示您的 HTML!

【讨论】:

  • 你能详细解释一下吗,我不明白你说调整最小高度时想到的是哪个元素。。?这是一个非常简单的模型,正如我所说,页眉、内容和页脚,都在名为 wrapper 的 div 内。我想要的只是当内容不足时页脚位于底部,但当内容足够时我不希望页脚将它与我应用的这种样式重叠,我想用纯 html / css 没有 JS 或 jQuery 解决方案..
  • 您能否在这里或在 jsfiddle.net 演示中发布您的完整代码(包括 HTML),我会给您答案;)
  • jsfiddle.net/be7dm7sn 我现在正在考虑其他选择。我有页眉、内容和页脚,所以如果我将页眉设为固定高度,我可以对内容 calc(100%-header-footer) 执行 min-height,或者在 calc func 中使用 CSS 中的这个新 vh(视口)而不是 100% ?
  • 那么...看看你的小提琴,你目前的问题是什么?即使我缩小,页脚似乎仍然存在?
  • 更改最小高度的位置:100%;到您希望容器不考虑内容的实际最小高度
【解决方案2】:

你几乎做到了:)

由于其高度,您的内容 div 与粘性页脚重叠。只需使用高度: calc(100% - footer_height);并在标题结束的地方开始您的内容。

这是此用法的JSFiddle 示例。

CSS 文件

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

.container {
    min-height: 100%;
    position: relative;
}

.header {
    background: #d6d6d6;
    position: absolute;
    height: 80px;
    width: 100%;
    top: 0;
    left: 0
}
.content {
    position: absolute;
    top: 80px;
    left: 0;
    width: 100%;
    height: calc(100% - 80px);
    background: yellow;
}
.footer {
    background: #d6d6d6;
    position: absolute;
    height: 80px;
    bottom: 0;
    left: 0;
    width: 100%;
    clear: both;
}

希望有用。

【讨论】:

  • 好的,现在我的内容没有被页脚重叠,但它现在是重叠的标题..
  • 这不是我的内容 div 重叠页脚,而是与内容重叠的页脚,因为它固定在底部并具有固定的高度,所以当我有很多内容页脚时,它会重叠。如果我将页脚的位置更改为相对位置,则在有足够内容的页面上它会很好,并且页脚就在内容下方,但在没有足够内容的页面上,页脚再次位于屏幕中间......
  • 是的,看来你是对的。我在内容中复制了一些 lorem 文本,它重叠了。尝试其他一些事情。
猜你喜欢
  • 2011-12-03
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2021-04-17
相关资源
最近更新 更多