蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 研发说
  3. 正文

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

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

最新 热点 随机
最新 热点 随机
深扒 Google Gemini Spark 这位"24小时不下班"的AI管家 Google推出Code Wiki,把“屎山代码”秒变可聊天的百科全书! VideoLingo凭什么敢称“全自动的视频本地化流水线”? 首个超2万亿级开源模型Kimi K3震撼发布,大模型格局彻底变天了? 别再手写 AI Agent 了!谷歌开源 agents-cli,一键给你的 AI 助手加满神仙级技能点 ChatGPT 实时语音 vs Gemini Live:深度实测!谁才是地表最强“无痛嘴替”?
开发者集体起立!cc-switch更新:原生干掉外挂,协议、会话、技能全包圆了!一键生成百万播放短视频?被吹上天的RedditVideoMakerBot,到底是搞钱神器还是时间杀手?别再迷信传统 RAG 了!知识库新物种 SAG 强势登场,实时干掉大模型“幻觉”!别再死磕提示词了!Google Flow Agent 彻底颠覆 AI 视频,有手就能当导演剪映要收网了?狂割韭菜后,这款狂揽5.7万Star的开源神器砸了谁的饭碗!被Figma卡脖子?这款自托管的开源神仙工具:Penpot,才是设计与开发的终极解药!
基于 Lit 框架开发 Web Component 组件的完整实践 HTML5 SVG人物跑步动画效果 DeepSeek-V4 来了:沉默15个月,憋了一颗“开源核弹” gRPC 通信协议详解与实战:高性能跨语言服务通信的基石 拒绝每人每月30刀!CopilotKit祭出OpenTag,把Claude在Slack上开源了 echarts.js多图表数据展示使用小结
最近评论
渔夫 发布于 9 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 9 年前(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