问题描述
任何人都可以解释如何将页脚 div 与页面底部对齐。从我看到的例子中,他们都显示如何使 div 保持在底部可见,无论您在哪里滚动页面。虽然我不想这样。我希望它固定在页面的底部,所以它不动。欣赏帮助!
最佳解决方案
UPDATE
我原来的答案是很久以前的,链接断了,更新它,使其继续有用。
我正在列出更新的解决方案,以及 JSFiddle 的一个工作示例。注意:我依赖于 CSS 重置,尽管我没有内联这些样式。参考 normalize.css
解决方案 1 – 边距偏移
https://jsfiddle.net/UnsungHero97/ur20fndv/2/
HTML
<div id="wrapper">
<div id="content">
<h1>Hello, World!</h1>
</div>
</div>
<footer id="footer">
<div id="footer-content">Sticky Footer</div>
</footer>
CSS
html, body {
margin: 0px;
padding: 0px;
min-height: 100%;
height: 100%;
}
#wrapper {
background-color: #e3f2fd;
min-height: 100%;
height: auto !important;
margin-bottom: -50px; /* the bottom margin is the negative value of the footer's total height */
}
#wrapper:after {
content: "";
display: block;
height: 50px; /* the footer's total height */
}
#content {
height: 100%;
}
#footer {
height: 50px; /* the footer's total height */
}
#footer-content {
background-color: #f3e5f5;
border: 1px solid #ab47bc;
height: 32px; /* height + top/bottom paddding + top/bottom border must add up to footer height */
padding: 8px;
}
解决方案 2 – flexbox
https://jsfiddle.net/UnsungHero97/oqom5e5m/3/
HTML
<div id="content">
<h1>Hello, World!</h1>
</div>
<footer id="footer">Sticky Footer</footer>
CSS
html {
height: 100%;
}
body {
display: flex;
flex-direction: column;
min-height: 100%;
}
#content {
background-color: #e3f2fd;
flex: 1;
padding: 20px;
}
#footer {
background-color: #f3e5f5;
padding: 20px;
}
这里有一些链接,更详细的解释和不同的方法:
-
https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
-
http://matthewjamestaylor.com/blog/keeping-footers-at-the-bottom-of-the-page
原始答案
你是这个意思吗?
http://ryanfait.com/sticky-footer/
This method uses only 15 lines of CSS and hardly any HTML markup. Even better, it’s completely valid CSS, and it works in all major browsers. Internet Explorer 5 and up, Firefox, Safari, Opera and more.
此页脚将永久保留在页面的底部。这意味着如果内容超过浏览器窗口的高度,则需要向下滚动以查看页脚… 但如果内容小于浏览器窗口的高度,则页脚将粘贴到底部的浏览器窗口,而不是浮动在页面的中间。
这是另一个也许更好的解决方案:
http://www.cssstickyfooter.com/
如果您需要帮助,请通知我们。我希望这有帮助。
次佳解决方案
这将使 div 固定在页面的底部,但是如果页面很长,则只有当您向下滚动时才会显示。
<style type="text/css">
#footer {
position : absolute;
bottom : 0;
height : 40px;
margin-top : 40px;
}
</style>
<div id="footer">I am footer</div>
高度和 margin-top 应该是一样的,以便页脚不显示内容。
第三种解决方案
您的标题和评论意味着您不是在寻找粘性页脚 (卡在窗口的底部,因为内容在其下滚动) 。我假设你正在寻找一个页脚,如果内容没有填满窗口,那么这个页脚会被强制到窗口的底部,如果内容超过窗口边界,则下拉到底部。
你可以用以下方式来完成这个。
<style>
html,
body {
margin:0;
padding:0;
height:100%;
}
#container {
min-height:100%;
position:relative;
}
#header {
background:#ff0;
padding:10px;
}
#body {
padding:10px;
padding-bottom:60px; /* Height of the footer */
}
#footer {
position:absolute;
bottom:0;
width:100%;
height:60px; /* Height of the footer */
background:#6cf;
}
</style>
<div id="container">
<div id="header">header</div>
<div id="body">body</div>
<div id="footer">footer</div>
</div>
资料来源:How to keep footers at the bottom of the page
第四种方案
检查这个,工作在 Firefox 和 IE
<style>
html, body
{
height: 100%;
}
.content
{
min-height: 100%;
}
.footer
{
position: relative;
clear: both;
}
</style>
<body>
<div class="content">Page content
</div>
<div class="footer">this is my footer
</div>
</body>
第五种方案
使用<div style="position:fixed;bottom:0;height:auto;margin-top:40px;width:100%;text-align:center">I am footer</div>
。页脚不会向上
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。