html中footer如何一直保持在页底
最近在开发博客过程中,遇到有些body的height是比window的height要低的,然后就出现了footer在页面中间的尴尬样子。那么这种情况怎么解决呢:
首先,写一个footer标签:
<footer class="fixed-bottom">
<p>自定义内容</p>
</footer>
然后,对footer和footer的class:fixed-bottom分别进行css样式定制:
 footer {
     text-align: center;
     background-color: #d2d8dd;
     padding: 1.5em;
     font-size: 16px;
 }
 footer.fixed-bottom {
     position: fixed;
     bottom:;
     width: 100%;
 }
为什么要分别写两个css样式呢?因为footer这个的样式,只不过是调整footer内的内容格式而已,它本身即可随页面的高度而紧随其后,然而当页面内容较少时就会在页面中间出现。为了解决这个问题就需要添加footer的class对应的css样式,样式属性中positon:fixed以及bottom:0使得footer会一直固定显示在页面底部,类似于bootstrap的固定导航栏那样挡在底部,不能随页面内容的翻滚而改变。这种方式确实实现了页面内容不足时可以使footer固定在底部的需求,但是对于页面内容很多时,却又在页面底部一直显示影响浏览心情。
那么怎么让什么合适的时候用footer的css样式,什么合适的时候用二者都具备的css样式呢?这时候就需要用一个js脚本来判断body的高度和window的高度,使得class类属性自动添加或消除:
<script type="text/javascript">
$(function(){
function footerPosition(){
$("footer").removeClass("fixed-bottom");
var contentHeight = document.body.scrollHeight,//网页正文全文高度
winHeight = window.innerHeight;//可视窗口高度,不包括浏览器顶部工具栏
if(!(contentHeight > winHeight)){
//当网页正文高度小于可视窗口高度时,为footer添加类fixed-bottom
$("footer").addClass("fixed-bottom");
} else {
$("footer").removeClass("fixed-bottom");
}
}
footerPosition();
$(window).resize(footerPosition);
});
</script>
最后,如此一来,就实现了在两种情况下的footer永远在底部显示,并且可以随页面滚动。
html中footer如何一直保持在页底的更多相关文章
- word中怎样设置页码包含总页数
		
一个同事做毕业论文,论文是Word格式,1-2页是封面和目录,不需要页码,第3-10页是论文内容,需要从第1页开始显示,并显示论文内容的总页数8 页.具体为页脚处显示“第*页共*页”.他让我帮忙设置一 ...
 - C#编译器优化那点事    c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错    webAPI 控制器(Controller)太多怎么办?    .NET MVC项目设置包含Areas中的页面为默认启动页  (五)Net Core使用静态文件    学习ASP.NET Core Razor 编程系列八——并发处理
		
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
 - 怎么样在同一个word文件中删除不同节数的页眉
		
1.双击页眉,进入页眉编辑状态2.选择准备删除页眉的节,直接额删除即可.注意:为不至于因该节的改动影响其他节的页眉,需要在页眉设置上,每节都要取消链接到前一节页眉 把那张的前面和后面都插入分隔符,在页 ...
 - CSS布局:让页底内容永远固定在底部
		
我们在设计一些页面内容甚少的网页时(典型应用就是登陆页面),由于显示器的分辨率大,在正常情况下,假如页面内容高度小于浏览器高度时,页面底部以下会留下很大的空间... 先看示例:http://www.h ...
 - ASP.NET MVC 设置Area中  Controller 的方法  默认启动页
		
MVC中通常分区域编程,互不干扰,如果需要设置某个区域下面的某个控制器下面的某个方法为默认启动页的话,直接修改项目的路由如下: public static void RegisterRoutes(Ro ...
 - jquery mobile开发中footer一直在底部的设置方法
		
现给出html中Body节点中的代码如下: 实现代码:data-position=”fixed” <div data-role="page" id="pageone ...
 - MVC中如何设置路由指定默认页
		
MVC中怎么设置默认页,在webform中 只要右键设置起始页就可以,但MVC中却没有这个功能,其实MVC更简单 如下: Login是控制器,Index 是动作 在全局Global.asax中改动下即 ...
 - js中的referrer返回上一页使用介绍
		
js中的referrer的用法举例. js完整代码: <script language="javascript"> var refer=document.refer ...
 - 解决SMARTFORMS 中table 控件单行跨页的问题
		
在CX项目中,MM模块做了大量的的单据打印的工作,一个问题困扰了我好久,一直不能解决.当物料描述很长时,table控件在单元格中能自动换行,这样就有可能在换页处出现一行记录的一部分打在上一页,一部分记 ...
 
随机推荐
- 简单实现TabBar的自定义
			
StackoverFlow上看到的,通过继承UITabBarController创建自定义TabBarController.在原有TabBar的基础上添加一个背景层,在其基础上增加三个自定义按钮,通过 ...
 - 茅台【思维/数学/剪枝】By cellur925
			
题目传送门 给你\(n\)根木棍,问有多少种方法,使得选出的三根木棍能组成三角形. 开始想要用搜索的,但是写着写着卡壳了(?),于是改用贪心,开始对拍,觉得很稳,只是最后两个数据可能有点卡.很第一题难 ...
 - ISCC 2018线上赛 writeup
			
今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x ...
 - 51Nod 1127 最短的包含字符串 (尺取法)
			
#include <iostream> #include <algorithm> #include <string> #include <cstring> ...
 - 统计最长回文串(传说中的Manacher算法)Hihocoder 1032
			
算法的核心就在这一句上了:p[i] = min(p[2*id-i], p[id] + id - i); #include <iostream> #include <cstdio> ...
 - Qt 2D绘图之六:图形视图框架的事件处理与传播
			
一.简介 图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景传递给相应的图形项.而对于键盘事件,它会传递给获得焦点的图形项,可以使用QGraphicsScene类的setFocusI ...
 - 关于vue的源码调试
			
一直看源码都是硬生生的看, 其实, 还是感觉调试起来会看的比较舒服. GitHub把vue的源码下载下来 npm install && npm run dev 在example中新建一 ...
 - Oracle 修改密码(忘记登录密码,用户System)
			
1.修改计算机环境变量,把oracle服务端路径放在最前面 2.输入cmd 3.输入命令:sysplus /nolog SQL>conn sys/syspwd as sysdba SQL> ...
 - 一步步实现自己的ORM(四)
			
通过前3章文章,大致对ORM有一定的了解,但也存在效率低下(大量用了反射)和重复代码,今天我们要对ORM进行优化. 具体流程如下: 我们优化的第一个就是减少反射调用,我的思路是定义一个Mapping, ...
 - Android 两个ArrayList找出相同元素及单个ArrayList删除元素
			
//从一个ArrayList中删除重复元素 List<String> arrayList1 = new ArrayList<String>(); arrayList1.add( ...