Ryan Fait的粘性页脚非常好,但我发现它的基本结构缺乏*。

Flexbox版本

如果你足够幸运,你可以使用flexbox而不需要支持旧的浏览器,粘性页脚变得非常简单,并支持动态大小的页脚。

使用flexbox将页脚粘到底部的技巧是让同一容器中的其他元素垂直弯曲。所需要的只是一个全高度的包装元素,display: flex并且至少有一个兄弟的flex值大于0:

CSS:

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

display: flex;

flex-direction: column;

min-height: 100%;

}

article {

flex: 1;

}

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

display: -webkit-box;

display: -ms-flexbox;

display: flex;

-webkit-box-orient: vertical;

-webkit-box-direction: normal;

-ms-flex-direction: column;

flex-direction: column;

min-height: 100%;

}

article {

-webkit-box-flex: 1;

-ms-flex: 1;

flex: 1;

}

header {

background-color: #F00;

}

nav {

background-color: #FF0;

}

article {

background-color: #0F0;

}

footer {

background-color: #00F;

}

here be header

here be content

here be footer

如果你不能使用flexbox,我选择的基本结构是:

哪个不是很远:

让页脚粘住的技巧是将页脚锚定到其包含元素的底部填充。这要求页脚的高度是静态的,但我发现页脚通常具有静态高度。

HTML:

...

CSS:

#main-wrapper {

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

#main-wrapper {

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

header {

background-color: #F00;

}

nav {

background-color: #FF0;

}

article {

background-color: #0F0;

}

footer {

background-color: #00F;

}

here be header

here be content

here be footer

在页脚固定的情况下#main-wrapper,您现在需要#main-wrapper至少达到页面的高度,除非其子项更长。这是通过做#main-wrapper有一个min-height的100%。你还必须记住它的父母,html并且还body需要和页面一样高。

CSS:

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

min-height: 100%;

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

min-height: 100%;

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

header {

background-color: #F00;

}

nav {

background-color: #FF0;

}

article {

background-color: #0F0;

}

footer {

background-color: #00F;

}

here be header

here be content

here be footer

当然,你应该质疑我的判断,因为这段代码迫使页脚从页面底部掉下来,即使没有内容。最后一个诀窍是要改变由所使用的盒模型#main-wrapper,因此认为min-height的100%包括100px填充。

CSS:

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

box-sizing: border-box;

min-height: 100%;

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

html,

body {

height: 100%;

margin: 0;

padding: 0;

}

#main-wrapper {

box-sizing: border-box;

min-height: 100%;

padding: 0 0 100px;

position: relative;

}

footer {

bottom: 0;

height: 100px;

left: 0;

position: absolute;

width: 100%;

}

header {

background-color: #F00;

}

nav {

background-color: #FF0;

}

article {

background-color: #0F0;

}

footer {

background-color: #00F;

}

here be header

here be content

here be footer

你有它,一个粘性页脚与你原来的HTML结构。只要确保footer's height等于#main-wrapper's padding-bottom,就应该设置好。

*我指手画脚既成事实的结构的原因是因为它设置.footer,并.header在不同的层次级别的元素,同时增加不必要的.push元素。

html5页脚最低下,页面底部或内容的页脚,以较低者为准相关推荐

  1. 如何将页脚固定在页面底部

    感觉有些繁琐.目前简单的,是在上continer中使用min-height属性,当然没有测试兼容性. -------2016-5-9 16:17:51-- source:如何将页脚固定在页面底部

  2. 如何将页脚固定在页面底部,而不是屏幕底部!

    一个经典的 Sticky footers 布局问题 话不多说贴代码 <div class="main"><div class="main-box&quo ...

  3. 如何确保页脚始终位于页面底部?

    在尝试创建精美的网站时,防止页脚在页面上浮动非常重要.内容较短的页面可能会遇到此问题,但只需几行 CSS 即可轻松修复.假设您的 HTML 看起来像下面的代码片段,这里有两种现代方法可以确保页脚始终位 ...

  4. 前端 如何将页脚固定在页面底部

    作为一个Web的前端攻城师,在制作页面效果时肯定有碰到下面这种现象:当一个HTML页面中含有较少的内容时,Web页面的"footer"部分随着飘上来,处在页面的半腰中间,给视觉效果 ...

  5. 如何将footer标签固定在底部_如何将页脚固定在页面底部(多种方法实现)

    作为一个Web的前端攻城师,在制作页面效果时肯定有碰到下面这种现象:当一个HTML页面中含有较少的内容时,Web页面的"footer"部分随着飘上来,处在页面的半腰中间,给视觉效果 ...

  6. php架在底部页面,将页脚固定在页面底部的CSS实战

    页脚的位置问题 网页的页脚(footer),也就是通常用来放置帮助链接及版权信息的地方.页脚自然是应该位于页面底部的,但依照一般的做法,如果位于页脚之前的网页内容比较少,或者说使用了一个垂直分辨率较大 ...

  7. 返回上一页跳过中间页面,返回上一页跳过敏感页面

    常见一种情况,例如支付: 有如下三个页面:入口页面,填写金额页面,支付成功页面 其中支付页面在支付成功有会有一个返回上一页的按钮,点击就返回上一页,或者点击浏览器返回上一页会出现继续进入输入金额的页面 ...

  8. html文本如何添加空白页,WPS文档页面中怎么添加空白页?

    A.可把空白页选定或把光标放在空白页,然后按backspace就可以删除了.第二种方法:(如果第一种方法行不通的话) 首先选中空白页中的那个段落标记,点击菜单命令或右键:"格式→段落&quo ...

  9. CSS实现页脚始终在页面底部

    说明 最近在布局自己的博客系统,我是想练练手把时下比较流行的前后端技术串起来.同时,我会把设计和编码过程中遇到的问题或值得分享的技术点.实现方式做下总结,记录下来.本篇就是第一篇,个人能力有限,不足之 ...

最新文章

  1. 风险管理、收尾管理和知识产品管理
  2. 以及其任何超类对此上下文都是未知的_ECCV'20 |OCRNet化解语义分割上下文信息缺失难题...
  3. centos把mysql移到数据盘_Centos转移Mysql的数据位置
  4. 编程之美-寻找数组中的最大值和最小值方法整理
  5. Android 带有字数统计的 TextInputLayout
  6. Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)
  7. HotSpot虚拟机在Java堆中对对象的管理
  8. UML--静态图(类图、对象图、包图)
  9. 锂电池电量百分比计算_锂电池充放电理论及电量计算方法设计
  10. 创建和销毁对象(1)
  11. 计算机一级wps视频教程,计算机一级WPS
  12. 434.字符串中的单词数
  13. Java入门电子书百度网盘下载,附面试答案
  14. Cadence OrCad Allegro SPB 16.6 下载及安装破解指南
  15. 未来计算机多媒体化,计算机多媒体技术的发展趋势研究
  16. 卸载重装Netmeeting
  17. 左程云 - 大厂刷题班 - 一种字符在左,另一种字符在右的最少交换次数
  18. 路由器当ap用虚拟服务器不能用,解决用TPLINK路由器配置模拟AP时Internet连接共享是空白的问题...
  19. JVM(四).Class 文件结构(附字节码完整解析)
  20. windbg 常用调试命令总结

热门文章

  1. 员工踩点上下班被HR约谈,网友:按时上下班,天经地义
  2. ubuntu阿里云快速下载
  3. SQL Server MDS(主数据服务)介绍
  4. wps怎么统一修改标点符号_毕业论文的参考文献怎么加入??脚注如何降重?
  5. 泡泡玛特2021年营收44.9亿元 同比增长78.7%
  6. 产业链消息称台积电积极寻求更多长期代工订单
  7. 员工30年换150万补偿款!佳能珠海关厂 因给太多遭痛骂:恶意拉高赔偿标准
  8. 取代13英寸版?苹果下半年将推出M2版MacBook Pro 14
  9. 暂不升级iOS 14.2:多款iPhone续航崩溃
  10. 上游供应链厂商确认高通已获准向华为出售4G芯片