蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
AI为翼,架构为骨,文化为魂,实践探新境,价值筑长青。
  1. 首页
  2. 研发说
  3. 正文

网站公共底文件在不同高度页面下显示位置解决方案

2016年1月7日 4836点热度 0人点赞 0条评论

在实际项目中尝尝会遇到网站公共的底部文件在不同高度页面下显示异常问题:

1.当网页高度不足以撑开一屏显示的时候,如果页面没有使用css定位,那么页面公共底文件不在视口最底部,而出现在偏上位置,这并不是我们要的效果,我们希望页面在视口的最底部显示。

如图:

foot1示例1

2. 当网页高度足以撑开一屏显示的时候,如果页面使用了css定位了,那么问题又来了,底页面公共底文件一直保持在了视口底部。

foot2

示例2

为了解决上面的问题我们通过js来判断操控样式来兼顾两种不同情况的显示方式

例html如下:

<footer class="footer_s posa">
<div class="foot_s">
<p>Copyright webzsky© 2013-2016 蓝戒的博客 </p>
<ul>
<li><a href="" target="_blank">关于我们</a></li>
<li><a href="" target="_blank">擅长领域</a></li>
<li><a href="" target="_blank">加入我们</a></li>
<li><a href="" target="_blank">联系我们</a></li>
</ul>
</div>
</footer>

需要js操控的的class名 posa的样式如下:

.posa {
position: absolute;
bottom: 0;}

js代码如下:

<script type="text/javascript">
window.onload = function(){
setTimeout(function(){
var vlistH = document.documentElement.clientHeight;   //网页可视窗口高度
var winH = $(document).height();     //网页文档高度
if(winH > vlistH) {
$(".footer_s").removeClass('posa');
}
},500);
}
</script>

然而,这样并没有完全解决问题,出现的问题是当页面足以撑开一屏时,底文件出现了一次footer,然后又消失了,用户体验还是不太好,解决方案如下:

我们需要一个新的隐藏样式的class名为:.disno{display:none;},页面加载时先通过css隐藏,加载页面判断文档高度,如果超出网页可视窗口高度先移除掉定位样式posa,然后在移除隐藏样式disno,否则只移除定位样式posa。

html结构如下:

<footer class="footer_s posa disno">
<div>
<p>Copyright webzsky© 2013-2016 蓝戒的博客 </p>
<ul>
<li><a href="" target="_blank">关于我们</a></li>
<li><a href="" target="_blank">擅长领域</a></li>
<li><a href="" target="_blank">加入我们</a></li>
<li><a href="" target="_blank">联系我们</a></li>
</ul>
</div>
</footer>

js代码如下:

<script type="text/javascript">
window.onload = function(){
setTimeout(function(){
var vlistH = document.documentElement.clientHeight;
var winH = $(document).height();
if(winH > vlistH) {
$(".footer_s").removeClass('posa');
$(".footer_s").removeClass('disno');
}else{
$(".footer_s").removeClass('disno');
}
},500);
}
</script>

到这里问题已经基本解决,然而还有一种情况需要考虑,就是ajax返回数据的情况,比如分页,最后一页高度变小由撑开一屏变成不足以撑开一屏页面定位样式已被移除所以到最后一页时页面底文件会出现上面示例1的问题,因此要注意页面文档高度的变化,采用css设置最小高度的办法解决此问题。

CSS实现footer置底最佳实践

标签: 解决方案
最后更新:2025年9月13日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
Vue 3.6「无虚拟 DOM」时代开启:深入解读 Vapor Mode 的革命性变革 2025 最推荐的 uni-app 技术栈:unibest + uView Pro 高效开发全攻略 前端开源工具 PinMe:极简部署体验分享 架构评估方法 ATAM:系统性洞察架构质量的利器 软件系统架构评估与质量属性分析 AI 大模型开发:如何实现数据向量化
Webpack 实战:Code Splitting 优化页面加载性能前端开源工具 PinMe:极简部署体验分享AI 产品前端技术全解析:模型可视化与流式响应实践前端内存泄露防范及编码攻略DApp开发前端技术全解析:技术选型、功能实现与开发步骤Web Workers:释放浏览器多线程的魔力
js的循环遍历方法总结 复制到剪贴板jquery-Zclip插件使用方法 Hybrid 开发全攻略:从原理到实战 马云在世界互联网大会的讲话摘录 《WebKit 技术内幕》前端开发者必读的浏览器内核知识 全面理解js变量提升、作用域链
最近评论
渔夫 发布于 6 天前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2