蓝戒博客

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

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

2016年1月7日 4876点热度 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 中对话未来。

最新 热点 随机
最新 热点 随机
npm 安全更新:把握令牌变更与发布体系的迁移参考指南 TresJS:用 Vue 构建现代化交互式 3D 体验 i18n 高效实现方案:前端国际化神器安利一波 前端国际化 i18n 实践:从项目到组件库的全链路方案 GEO(生成引擎优化)完整指南:AI 搜索时代的企业内容新机会 NativeScript:用 JavaScript / TypeScript 构建真正的原生应用
前端开源工具 PinMe:极简部署体验分享大屏适配的核心痛点与一行 autofit 解决方案markdown-exit:现代化的 Markdown 解析工具Lerna + Monorepo:前端多仓库管理的最佳实践CrewAI:基于角色协作的 AI Agent 团队框架浅析2025 最推荐的 uni-app 技术栈:unibest + uView Pro 高效开发全攻略
gRPC 通信协议详解与实战:高性能跨语言服务通信的基石 前端攻城师一定要做的6件事 新增HTML5标签cssReset body 设置字体样式后会影响整体的文档结构上下文:问题分析与 Web Components 开发策略 前端内存泄露防范及编码攻略 vue项目开发的一些总结
最近评论
渔夫 发布于 1 个月前(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