紧贴底部的页脚

我们的难题

       在网页设计中,存在一个相当古老而又相当常见的问题,它是前端工程师绕不开的坎。这个问题可以概括如下:有一个具有块级样式的页脚(比如它设置了背景或者阴影),当页面内容足够长时,它一切正常,而当页面较短时,就会出现问题。此时的问题在于页脚不能向我们期望的那样紧贴在视口的最底部,而是跟随在内容的下方。

我之前的解决方案

我是利用了脚本js控制了页面主要内容(main)的高度,让它最小 = 屏幕的高度 - 其他兄弟元素的高度;大概如下:

var minHeight = $(window).height() - $(".header").outerHeight(true) - $(".footer").outerHeight(true) - $(".banner").outerHeight(true);
$('.main').css({'min-height' : minHeight + 'px'});

CSS揭秘的方案

看看我们如果只用css有什么好的办法。

1、

main 
{
min-height: calc(100vh - 2.5em - 7em);
/* 
避免内边距或边框搞乱高度的计算:
 */
 box-sizing: border-box;
}

 

它上面的2.5em和7em也是头部和页面底部的高度,和我的js一个套路。但是这个不够灵活当你页面头部和底部有变更,你要跟着调整min-height的值。ie9+(calcvh box-sizing)也算是一个方法;

2、

body{
      display: flex;
      flex-flow: column;
      min-height: 100vh;
}
 .main{
       flex: 1;
  }

 

Flexbox对于此类问题是完美的选择。不需要复杂的计算和添加多余的HTML元素;

body是三个主要区域块的父元素,页头和页脚的高度由其内部因素来决定,而内容区的高度自动伸展并占满所有的可用空间,ie11+可以尝试这个霸气的方案;

转载于:https://www.cnblogs.com/limz/p/8257522.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值