如何将页脚保持在屏幕底部[重复]

Posted

技术标签:

【中文标题】如何将页脚保持在屏幕底部[重复]【英文标题】:How to keep footer at bottom of screen [duplicate] 【发布时间】:2013-09-15 09:41:27 【问题描述】:

设置网页的最佳做法是,如果该网页上显示的内容/文本非常少,则页脚显示在浏览器窗口的底部而不是网页的一半?

【问题讨论】:

position:fixed;bottom:0;left:0;right:0;height:30px; 你能展示一下到目前为止你尝试了什么吗? 一个好的做法是先搜索其他类似的讨论,例如***.com/questions/643879/… 我试图设置该部分的最小高度 :( 热门答案不适用于 REACT -- 试试 this Flexbox solution,它适用于 React/Angular/html/everything,来自 Chris Coyier (CSS-Tricks) 【参考方案1】:

设置它的 position:fixed 和 bottom:0 以便它始终位于浏览器窗口的底部

【讨论】:

谁能证明为什么这被否决了?我想这是将元素保持在视口底部的最简单方法。 是的。它被否决了,因为如果页面上有更多内容,页脚仍然保留在页面底部,无论文档高度如何。这不是正确的行为。 Radu - 这就是整个讨论的原因。保持页脚可见,而不是在荷兰和井底深处。上面的查马拉也说了同样的话。你也对她投了反对票吗?【参考方案2】:

使用这种风格

min-height:250px;
height:auto;

【讨论】:

【参考方案3】:

您可以使用position:fixed;bottom

例如:

#footer
 position:fixed;
 bottom:0;
 left:0;

【讨论】:

然后无论实际页面上有多少内容,它都会显示在屏幕底部。不好的建议。 @mwieczorek 嗯,我想这取决于你想要什么?我不会说查马拉的建议不好。这实际上是我想要的,它对我有用 :) 在屏幕调整大小时,我的页脚完全保持在我想要的位置:在我的页面底部。谢谢查马拉。 谢谢..它成功了。 查马拉干得好。那是我的果酱。 我同意,好建议。我想要并认为这就是 mwieczorek 所要求的。【参考方案4】:

您正在寻找的是 CSS Sticky Footer

* 
  margin: 0;
  padding: 0;


html,
body 
  height: 100%;


#wrap 
  min-height: 100%;


#main 
  overflow: auto;
  padding-bottom: 180px;
  /* must be same height as the footer */


#footer 
  position: relative;
  margin-top: -180px;
  /* negative value of footer height */
  height: 180px;
  clear: both;
  background-color: red;



/* Opera Fix thanks to Maleika (Kohoutec) */

body:before 
  content: "";
  height: 100%;
  float: left;
  width: 0;
  margin-top: -32767px;
  /* thank you Erik J - negate effect of float*/
<div id="wrap">
  <div id="main"></div>
</div>

<div id="footer"></div>

【讨论】:

由于某种原因添加 会破坏页脚。 我的页脚没有固定高度...它可能在不同的设备上有所不同,或者在纵向和横向格式之间有所不同。怎么办? @miliu,你的页脚高度是如何计算的?如果您使用的是相对值(如 em 或 vh/vw),您可能可以在此处输入相同的值。如果比这更复杂,CSS 的calc() 函数可能会派上用场。作为最后的手段,考虑使用 javascript 使用获得的维度动态设置属性,例如使用 Element.getBoundingClientRect 或 jQuery。 CSS Sticker Footer 链接将我发送到一堆垃圾邮件。 @Raymond26 谢谢。删除了那个链接。【参考方案5】:

HTML

<div id="footer"></div>

CSS

#footer 
   position:absolute;
   bottom:0;
   width:100%;
   height:100px;   
   background:blue;//optional

【讨论】:

绝对定位是确保您的标记在某些设备上中断的最佳方式。【参考方案6】:

也许最简单的方法是使用position: absolute 固定到底部,然后使用合适的边距/填充来确保其他文本不会溢出到它的顶部。

css:

<style>
  body 
    margin: 0 0 20px;
  
  .footer 
    position: absolute;
    bottom: 0;
    height: 20px;
    background: #f0f0f0;
    width: 100%;
  
</style>

这里是html的主要内容。

<div class="footer"> Here is the footer. </div>

【讨论】:

如果内容没有占满整个页面,此方法有效。一旦您添加更多内容,它就会中断。 投反对票:正如 RSSM 所说,如果页面高于屏幕,它就会中断。真的,不推荐这个。 Tbh 我不确定我在编写这段代码时在想什么。这在当时似乎是合理的......`:)

以上是关于如何将页脚保持在屏幕底部[重复]的主要内容,如果未能解决你的问题,请参考以下文章

即使使用动态高度网站,如何将页脚保持在底部

如何将页脚保持在底部,直到内容充满身体高度? [复制]

即使内容不够大,也将页脚强制放在屏幕底部(不粘)

Vue组件更改时将页脚保留在页面底部

页面底部高度可变的页脚[重复]

将页脚发送到页面末尾[重复]