【发布时间】:2014-05-26 10:35:57
【问题描述】:
我一直在使用 Flexbox 尝试制作一个粘性页脚,但出于某种原因,我的一个 div 与页脚重叠?当我将窗口拖到更大的显示器时,页脚是完美的。我做错了什么?
另外,我更喜欢使用这种方法而不是其他方法,例如table 方法。
这是我的 Html 布局:
<body>
<div class="mainContent">...</div>
<div class="footer">...</div>
</body>
在我的mainContent div 中,我拥有网站的完整顶部,包括标题。我只需要将它用作整个内容,然后有我的页脚。
这是我拥有的 CSS:
body
{
height: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-orient: vertical;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
min-height: 100vh;
}
.mainContent
{
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
-webkit-flex: 1;
}
.footer
{
height: 75px;
background: #222;
color:#EEE;
}
我什至试过这个:http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
但我遇到的问题与我目前遇到的相同。
更新
根据 cmets 的要求,我将主要内容 div 设置为 overflow: auto;,但我的内容被页脚覆盖。我将如何解决这个问题?
【问题讨论】:
-
这不是 flex 问题,如果你设置 mainContent overflow: hidden 它是固定的,所以 flex 覆盖工作正常。而是重新排列 maincontent 内容。
-
@vals 好的,谢谢,但这并不能解决我的问题。为什么内容现在被推到页脚下而不是页脚被下推?
-
另外,@vals,我不能重新排列我的 html?或者你只是在谈论布局?
-
我知道隐藏 mainContent 溢出不是解决方案。这是一条线索,告诉您问题出在 inside mainContent,而不是在 body 和 mainContent 之间的弹性框中。您必须查看 mainContent 内部,了解为什么它需要比可用空间更多的空间,然后修复它
-
@vals 是的,我知道。我做了一些挖掘,发现我在 mainCONntent 中的内容 div 具有绝对定位。请张贴你的答案。谢谢