当前位置: 首页 > news >正文

双鸭山网站建设企业郑州今天刚刚发生的新闻

双鸭山网站建设企业,郑州今天刚刚发生的新闻,国际空间站,彩页设计图片需求 有这样一个需求: 当页面内容高度小于屏幕高度时,Footer固定在屏幕底部;当页面内容高度大于屏幕高度时,Footer固定在页面底部,即:跟随在内容尾部,滚动条到最底部时看到。踩过的坑 第1种方案…

需求

有这样一个需求:

  • 当页面内容高度小于屏幕高度时,Footer固定在屏幕底部;
  • 当页面内容高度大于屏幕高度时,Footer固定在页面底部,即:跟随在内容尾部,滚动条到最底部时看到。

踩过的坑

第1种方案:绝对定位 + padding

body{position : relative;padding-bottom: 60px;
}footer{position : absolute;bottom : 0;width : 100%;height : 60px;
}
复制代码

这种方案可以保证footer一直在屏幕底部,当滚动条滚到最底部时,页面内容也不会被footer挡住。

但是问题就是:当在滚动页面的过程中,底部的Footer始终会挡住一部分页面的视线。

第2种方案:js控制footer的定位

var resizeFooter = function(){if(document.body.clientHeight > window.innerHeight){document.querySelector('footer').style.position = 'relative';return;};document.querySelector('footer').style.position = 'absolute'
};//页面加载完成后先计算一下高度,是否出现滚动条。
window.addEventListener('load',function(e){resizeFooter();
});//页面变化之后,重新调整footer
window.addEventListener('resize',function(e){resizeFooter();
});
复制代码

这种方案看是没有问题,但是实际上却有一个非常大的坑。

假如系统是SPA单页面应用,那么页面局部内容发生改变以后,就会影响到footer的显示。也就是说,你得考虑所有动态改变页面内容后,都得调用一次 resizeFooter

更加严峻的问题是,假如你使用的是MVVM框架,比如:vue,那么你调用 resizeFooter 一定需要在页面数据双向绑定完成之后,也就是页面充分渲染完之后才能调用,也就是 mounted 回调钩子中触发。

如果其他框架没有提供这类回调钩子,你可能就要崩溃了,自己写个 setTimout 延后一段时间执行?更不可靠。

而且这种方式,即便你JS控制的再好,也会在页面上看起来,Footer有个不自然的变化!

完美的解决方案

html {position: relative;min-height: 100%;
}body {margin-bottom: 60px;
}footer {position: absolute;bottom: 0;width: 100%;height: 60px;
}
复制代码

只需要以上代码即可,另外需要注意IE10下有个bug,需要HACK一下。

/*!* IE10 viewport hack for Surface/desktop Windows 8 bug* Copyright 2014-2015 Twitter, Inc.* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)*/// See the Getting Started docs for more information:
// http://getbootstrap.com/getting-started/#support-ie10-width(function () {
  'use strict';if (navigator.userAgent.match(/IEMobile\/10\.0/)) {var msViewportStyle = document.createElement('style')msViewportStyle.appendChild(document.createTextNode('@-ms-viewport{width:auto!important}'))document.querySelector('head').appendChild(msViewportStyle)}})();
复制代码

以上内容参考于Bootstrap示例:Sticky footer

延伸

CSS布局中有一种 “粘性布局”,即:position:sticky,跟我们刚才的footer控制的需求正好相反。

  • 我们的需求:当内容高度小于屏幕高度时,footer固定在底部,否则相对内容高度显示;
  • 粘性布局的特性:当内容到达粘性阈值前相对内容显示,达到后固定不变。

所以,粘性布局我们无法使用,但是作为学习,恰好跟我们的这个案例相反,还是值得一看的。

想了解这一特性,可以参考学习 position:sticky 语法以及如何爬坑:

  • developer.mozilla.org/zh-CN/docs/…
  • position: sticky 详解(防坑指南)
  • BFC 神奇背后的原理

参考

  • How to position a footer/element relative to the bottom of the page?
  • Sticky footer
http://www.lbrq.cn/news/2550151.html

相关文章:

  • 网站建设流程步骤上海网站快速优化排名
  • wordpress在百度排名靠前seo经验是什么
  • 北京企业网站搭建油烟机seo关键词
  • 天津市建设 中标公示网站东莞疫情最新通知
  • 网站建设设计技术方案模板下载如何推销产品给客户
  • 织梦美女图片网站模板站长工具永久
  • 制作企业网站页面多少钱seo是指
  • 提供购物网站建设新闻发布最新新闻
  • 做网站就是做服务成都百度推广电话号码是多少
  • 奢侈品网站设计沈阳seo网站关键词优化
  • 钦州网站建设广东企业网站seo哪里好
  • 关于做公司网站网络推广项目外包公司
  • 网站被恶意关键字访问重庆seo网络推广关键词
  • 股票专业网站seo电商运营是什么意思
  • wordpress主题 破解主题下载地址seo查询工具网站
  • 东莞阳光网appseo搜索优化公司排名
  • .net如何做网站游戏行业seo整站优化
  • 高端定制网站设计上海网络营销seo
  • 外贸公司都是在什么网站做推广镇江抖音seo
  • 厦门网站建设培训机构免费网站友情链接
  • 犀牛云做网站怎么这么贵外贸平台有哪些?
  • php网站开发 实战教程aso优化吧
  • 口碑好的网站定制公司关键词林俊杰mp3下载
  • 化妆品做网站流程百度广告投放收费标准
  • 上海自助建站企业免费b2b网站推广渠道
  • 购物网站的首页是静态百度广告太多
  • 做网站弄关键词多少钱禁止搜索引擎收录的方法
  • 动漫视频网站开发网上引流推广怎么做
  • 修改wordpress标签大小seo权重优化软件
  • 温州建设网站公司搜索引擎优化英文简称
  • 数字化转型驱动中小制造企业的质量管理升级
  • 网络安全基础知识【6】
  • linux编译基础知识-头文件标准路径
  • K8S部署ELK(三):部署Elasticsearch搜索引擎
  • 个人电脑部署私有化大语言模型LLM
  • 暑期算法训练.12