资讯专栏INFORMATION COLUMN

将footer固定在页面底部的实现方法

leeon / 646人阅读

摘要:也可以设置负值的在上面,此时结构变化如下设置使用一个空的把容器推到页面最底部,同时给设置一个负值的,这个与和的高度相等。

方法一:footer高度固定+绝对定位

HTML结构:


    
header
main content
footer

CSS设置:

html{height:100%;}
body{min-height:100%;margin:0;padding:0;position:relative;}

header{background-color: #ffe4c4;}
main{padding-bottom:100px;background-color: #bdb76b;}/* main的padding-bottom值要等于或大于footer的height值 */
footer{position:absolute;bottom:0;width:100%;height:100px;background-color: #ffc0cb;}

首先,设置body的高度至少充满整个屏幕,并且body作为footer绝对定位的参考节点;
其次,设置main(footer前一个兄弟元素)的padding-bottom值大于等于footer的height值,以保证main的内容能够全部显示出来而不被footer遮盖;
最后,设置footer绝对定位,并设置height为固定高度值

方法二:footer高度固定+margin负值

HTML结构:


    
header
main content
footer

CSS设置:

html,body{height:100%;margin:0;padding:0;}

.container{min-height:100%;}
header{background-color: #ffe4c4;}
main{padding-bottom:100px;background-color: #bdb76b;}/* main的padding-bottom值要等于或大于footer的height值 */
footer{height:100px;margin-top:-100px;background-color: #ffc0cb;}/* margin-top(负值的)高度等于footer的height值 */

此方法把footer之前的元素放在一个容器里面,形成了container和footer并列的结构:
首先,设置.container的高度至少充满整个屏幕;
其次,设置main(.container最后一个子元素)的padding-bottom值大于等于footer的height值;
最后,设置footer的height值和margin-top负值

这种方法没有使用绝对定位,但html结构的语义化不如方法一中的结构清晰。

也可以设置负值的margin-bottom在.container上面,此时html结构变化如下:


    
header
main content
footer

CSS设置:

html,body{height:100%;margin:0;padding:0;}
.container{min-height:100%;margin-bottom:-100px;}
.empty,footer{height:100px;}

使用一个空的div把footer容器推到页面最底部,同时给container设置一个负值的margin-bottom,这个margin-bottom与footer和.empty的高度相等。

虽然多了一个空的div,语义上也不怎么好,但是相比前面为main元素设置padding-bottom的方法有一个明显的好处:当网页内容不满一屏的时候,如果需要为main元素设置边框、背景色的时候,padding-bottom硬生生地撑出了一片空白,真真是有点丑,但是加个空的div之后,布局方式作用在.empty上,对main的css设置就不影响了,算是一个好处吧!

方法三:footer高度任意+js

HTML结构:


    
header
main content
footer

CSS设置:

html,body{margin:0;padding: 0;}
header{background-color: #ffe4c4;}
main{background-color: #bdb76b;}
footer{background-color: #ffc0cb;}

/* 动态为footer添加类fixed-bottom */
.fixed-bottom {position: fixed;bottom: 0;width:100%;}

js代码:

$(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");
        }
    }
    footerPosition();
    $(window).resize(footerPosition);
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/115062.html

相关文章

  • 八种方法实现CSS页面底部固定

    摘要:当我们在写页面时经常会遇到页面内容少的时候,会戳在页面中间或什么反正就是不在最底部显示,反正就是很难看,下面要讲的布局就是解决如何使元素粘住浏览器底部,方法一高度固定绝对定位查看效果方法二在主体上的下边距增加一个负值等于底部高度 showImg(https://segmentfault.com/img/bVbmX36?w=1140&h=641);当我们在写页面时经常会遇到页面内容少的时...

    lentrue 评论0 收藏0
  • 八种方法实现CSS页面底部固定

    摘要:当我们在写页面时经常会遇到页面内容少的时候,会戳在页面中间或什么反正就是不在最底部显示,反正就是很难看,下面要讲的布局就是解决如何使元素粘住浏览器底部,方法一高度固定绝对定位查看效果方法二在主体上的下边距增加一个负值等于底部高度 showImg(https://segmentfault.com/img/bVbmX36?w=1140&h=641);当我们在写页面时经常会遇到页面内容少的时...

    KitorinZero 评论0 收藏0
  • footer固定页面底部实现方法总结

    摘要:方法二高度固定负值代码头部中间内容底部信息代码此方法把之前的元素放在一个容器里面,形成了和并列的结构首先,设置的高度至少充满整个屏幕其次,设置最后一个子元素的值大于等于的值最后,设置的值和负值。方法一:footer高度固定+绝对定位 HTML代码: 头部 中间内容 底部信息 CSS代码: *{ margin:0; padding:0; } h...

    longshengwang 评论0 收藏0
  • footer固定页面(视口)底部

    摘要:让固定在页面视口底部这是一个让网站固定在浏览器页面内容小于浏览器高度时页面底部的技巧。如何通过用让固定在页面顶部。负外边距应该与的整体高度相等包括。没有内容会超出和的标签,除非超出内容是通过的绝对定位。 让footer固定在页面(视口)底部(CSS-Sticky-Footer) 这是一个让网站footer固定在浏览器(页面内容小于浏览器高度时)/页面底部的技巧。由HTML和CSS实现...

    Lemon_95 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<