<footer>始终在页面底部

问题描述: 当内容很多时,footer跟在内容后面;当内容不够一页时,footer位于最底下。

效果展示:

【有滚动条出现的时候,底部跟在内容后面,此时一屏下是看不到的】

这里写图片描述


【没有滚动条出现的时候,位于最底端,此时一屏下是能看到的】

这里写图片描述

23333 感觉效果展示 有点模糊…..

实现:

html {
        height:100%;
}
body {
    min-height:100%; 
    position:relative; 
    padding-bottom: 50px; 
    box-sizing: border-box;
}
footer {
    position:absolute; 
    bottom:0; 
    width:100%; 
    text-align:center; 
    line-height:40px; 
}


一个猝不及防的拓展

尝试下面的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>height</title>
    <style type="text/css">
    *{
        padding: 0;
        margin: 0;
    }
    body {
        height: 100%;
    }
    div {
        height: 20%;
        background: red;
    }
    </style>
</head>
<body>
    <div>
        <p></p>
    </div>
</body>
</html>


结果展示:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

噹噹噹!!!惊不惊喜,意不意外,感不感动

原因:不设置高度的情况下,块级元素的高度是由包裹的内容撑开的。html body 也会由子元素堆起来。

元素高度百分比需要向上遍历父标签要找到一个定值高度才能起作用,如果中途有个height为auto或是没有设置height属性,则高度百分比不起作用,此时的情况是父元素高度依赖子元素堆砌撑高,而子元素依赖父元素的定高起作用,互相依赖,却都无法依赖,死循环了。

div的父元素是body,body的父元素是html,通过height:100%层层向上,找到顶级获取定高。

// 加上这个就好啦啦啦啦
html {
    height: 100%;
}

拓展部分原博文:由html,body{height:100%}引发的对html和body的思考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值