我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在移动Web页面中使用CSS固定页脚

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在移动Web页面中使用CSS固定页脚

本篇内容介绍了“怎么在移动Web页面中使用CSS固定页脚”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一种单页应用的页面结构

面向移动端的单页应用(Single Page Web Application),从页面代码上来说,会使用较一般网页不同的结构。单页应用并不是说应用只需要一个视图,而是说可以将组成应用的多个视图集合在一个网页内呈现,且在视图之间能够自由切换(平滑的动画形式居多)。

我制作单页应用使用的是一种常见方法,像下面这样:

CSS Code复制内容到剪贴板

  1. <body>   

  2.     <div class="view-page view-current"></div>   

  3.     <div class="view-page"></div>   

  4.     <div class="view-page"></div>   

  5. </body>   

  6.   

  7. .view-page{   

  8.     display: none;   

  9.     position: absolute;   

  10.     width: 100%;   

  11.     height: 100%;   

  12.     left: 0;   

  13.     top: 0;   

  14. }   

  15. .view-current{   

  16.     display: block;   

  17. }  

可以看出,其原理是视图都由绝对定位的覆盖屏幕大小(可见视口)的元素构成,在某一时间点,只会显示一个视图。
固定页脚的问题

那么,固定页脚是一个什么问题呢?请看下图:
怎么在移动Web页面中使用CSS固定页脚

先说说什么是固定页脚吧。上图右可以看到,当页面内容较多,超出一屏的高度时,页脚是“自然地”紧跟在内容后边,滚动到底部时,才会看到位于最下方的页脚。同时,上图左可以看到,当页面内容较少时,页脚则直接位于屏幕最下方,剩余区域则是空白。这就是固定页脚,它可以算是一种比较理想的“总是在它应该在的位置”的页脚。

那么,问题来了。参考上图左,除了固定页脚的效果之外,现在还要求当页面内容较少时,页面内容(Content)可以水平垂直居中于剩余的空间(Container)。在上述单页应用的页面结构中,应该如何实现呢?
方法探讨
水平垂直居中与Flexbox

让我们一步一步来。先完成“水平垂直居中”。由于内容高度不确定,所以这里适合使用弹性盒模型(Flexbox)。

关于弹性盒模型的指南,推荐阅读A Complete Guide to Flexbox 和Dive into Flexbox 。

应用Flexbox实现水平垂直居中可以先得到这样的代码(由于其他视图不再需要,这里只保留一个视图):

CSS Code复制内容到剪贴板

  1. <body>   

  2.     <div class="view-page view-current">   

  3.         <div class="container flex-container justify-content-center align-items-center">   

  4.             <div class="content"></div>   

  5.         </div>   

  6.     </div>   

  7. </body>  

上面的div.container对应前面图中的剩余空间(作为容器),div.content则是需要水平垂直居中的内容。对应的css是:

CSS Code复制内容到剪贴板

  1. .container{   

  2.     min-height: 100%;   

  3. }  

flex-container、justify-content-center、align-items-center都是弹性盒模型的辅助class(熟悉了Flexbox就可以很快理解)。使用辅助class是因为弹性盒模型从前到后几经变化,兼容处理需要稍多代码。这些辅助class的css是:

CSS Code复制内容到剪贴板

  1. .flex-container{   

  2.     display: -webkit-box;   

  3.     display: -webkit-flexbox;   

  4.     display: -ms-flexbox;   

  5.     display: -webkit-flex;   

  6.     display: flex;   

  7. }   

  8.   

  9. .justify-content-center{   

  10.     -webkit-box-pack: center;   

  11.     -webkit-flex-pack: center;   

  12.     -ms-flex-pack: center;   

  13.     -webkit-justify-content: center;   

  14.     justify-content: center;   

  15. }   

  16.   

  17. .align-items-center{   

  18.     -webkit-box-align: center;   

  19.     -webkit-flex-align: center;   

  20.     -ms-flex-align: center;   

  21.     -webkit-align-items: center;   

  22.     align-items: center;   

  23. }  

到此,水平垂直居中就完成了。
实现固定页脚

现在加入页脚的部分。这时候html代码变成:

CSS Code复制内容到剪贴板

  1. <body>   

  2.     <div class="view-page view-current">   

  3.         <div class="container flex-container justify-content-center align-items-center">   

  4.             <div class="content"></div>   

  5.         </div>   

  6.         <div class="footer"></div>   

  7.     </div>   

  8. </body>  

注意,div.view-page是绝对定位,且定义了height: 100%;,而此时div.container也定义了min-height: 100%;。考虑到要“为页脚留空间”,结合传统网页中的固定页脚的做法,得到完整的css:

CSS Code复制内容到剪贴板

  1. .container{   

  2.     min-height: 100%;   

  3.     margin-bottom: -120px;   

  4.     padding-bottom: 120px;   

  5.     -webkit-box-sizing: border-box;   

  6.     box-sizing: border-box;   

  7. }   

  8. .footer{   

  9.     height: 120px;    

  10. }  

以上就是在这种条件下的固定页脚的实现方法。虽然最后看起来只是这样一小段代码,但我还是思考了相当一段时间加上试验才得到。其中padding-bottom和负值的margin-bottom的结合应用很关键。此外,作为移动端的网页,要想到使用box-sizing这个配合百分比会非常有用的CSS3属性。
其他形式的尝试?

我也试过使用主轴为垂直方向的Flexbox来实现,但可惜经过测试,flex-direction: column;还没有被现在的主流手机浏览器所支持。
传统网页的固定页脚

关于传统网页的固定页脚,有一个专门的站点HTML5 CSS Sticky Footer介绍了其实现方法和原理,你也可以阅读我以前写的简单实现固定在页面底部的页脚。

“怎么在移动Web页面中使用CSS固定页脚”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在移动Web页面中使用CSS固定页脚

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

web开发中怎么将页脚固定在页面底部

这篇文章给大家分享的是有关web开发中怎么将页脚固定在页面底部的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作为一个Web的前端攻城师,在制作页面效果时肯定有碰到下面这种现象:当一个HTML页面中含有较少的内容时
2023-06-08

利用CSS怎么将页面底部固定

这篇文章给大家介绍利用CSS怎么将页面底部固定,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定
2023-06-08

怎么使用CSS实现鼠标移动控制页面元素效果

这篇文章主要介绍怎么使用CSS实现鼠标移动控制页面元素效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!映射鼠标位置或实现拖拽效果,我们可以在 JavaScript 中做到这一点。但实际上,在CSS中有更加简洁的方法
2023-06-14

怎么在HTML5页面中使用localStorage

这期内容当中小编将会给大家带来有关怎么在HTML5页面中使用localStorage,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 一、什么是localStorage、sessionStorage在HTM
2023-06-09

在vue移动端项目中怎么实现页面缓存

这篇文章主要介绍在vue移动端项目中怎么实现页面缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景在移动端中,页面跳转之间的缓存是必备的一个需求。例如:首页=>列表页=>详情页。从首页进入列表页,列表页需要刷新,
2023-06-14

怎么利用css在页面中不留缝隙

在现代的网页设计中,CSS早已成为了必不可少的一部分。不同的CSS技巧能够让我们实现各种神奇的效果,让网页看起来更加美观和专业。今天,我们要讨论的是一种高级的CSS技巧:不留缝隙CSS。所谓“不留缝隙CSS”,指的是在网页布局上,完全去掉元素之间的空隙,使得页面看起来更加美观、整洁。而这一技巧需要经过一些 CSS 知识的学习和运用,下面将详细介绍一些实现方法,帮助读者更好地掌握
2023-05-14

怎么在Html5页面中使用JSON实现一个动画

今天就跟大家聊聊有关怎么在Html5页面中使用JSON实现一个动画,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.demo.html里面有很多内联的东西,使用时堆积在页面内不好看仔
2023-06-09

php中怎么使用重定向跳转页面

这篇文章主要介绍“php中怎么使用重定向跳转页面”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中怎么使用重定向跳转页面”文章能帮助大家解决问题。什么是重定向?重定向是一种机制,它允许我们将用户
2023-07-05

怎么在JavaScript中使用cookie记住用户页面

本篇文章为大家展示了怎么在JavaScript中使用cookie记住用户页面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么时cookie?cookie有4kb大小,超出长度会返回空字符串;coo
2023-06-14

编程热搜

目录