首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免页脚div与页面内容重叠?

问如何避免页脚div与页面内容重叠?
EN

Stack Overflow用户
提问于 2015-12-17 00:07:18
回答 4查看 94关注 0票数 1

我使用这段代码通过JSTL打印表。该表位于contentFrame目录中。然而,最初位于底部的页脚开始浮动并与contentFrame重叠。我不想让页脚保持在一个固定的位置。有没有办法把它放在页面的底部,这样当新内容被添加时,它就会被“下推”?

​

代码语言:javascript
复制
body {
  background-color: blue;
}
#contentFrame {} #date {
  float: left;
}
#logOutFrame,
#contentFrame,
#headerFrame,
#menuFrame {
  background-color: red;
}
#headerFrame {
  margin-top: 30px;
}
#logOutFrame {
  left: 0px;
  position: absolute;
  text-align: right;
  top: 0px;
  width: 100%;
}
#footerFrame {
  background-color: orange;
  bottom: 0px;
  left: 0px;
  position: absolute;
  text-align: center;
  width: 100%;
}
代码语言:javascript
复制
<div id="logoutFrame">
  <span id="date"> Date </span>
  <span id="userEmail"> blah@email.com </span>
  <a id="signOutLink" href="#"> Sign Out </a>
</div>

<div id="headerFrame">
  <h1>Pointwest Logo</h1>
</div>

<div id="menuFrame">
  <ul>
    <li>A</li>
    <li>B</li>
  </ul>
</div>


<div id="contentFrame">
  // content
</div>



<div id="footerFrame">
  <p>footer</p>
</div>

​

编辑:使用bootstrap中的粘性页脚,它起作用了

EN

回答 4

Stack Overflow用户

发布于 2015-12-17 01:23:03

解决这个问题的一种方法是:

如果要监视浏览器视口的高度,并且position: absolute

  • Use

  • 的高度超出了其余视口的高度,请将position: relative

更改为

  1. 为#footerFrame提供一个默认的position: absolute
  2. Use .js

​

代码语言:javascript
复制
function positionFooter() {
	    var contentFrame = document.getElementById('contentFrame');
	    var footerFrame = document.getElementById('footerFrame');

	    var contentY = contentFrame.offsetTop;
	    var contentHeight = contentFrame.clientHeight;
	    var viewportHeight = window.innerHeight;
	    var footerHeight = footerFrame.clientHeight;

	    if ((contentY + contentHeight) > (viewportHeight - footerHeight)) {
	            footerFrame.style.position = 'relative';
	        }

	    else {
	            footerFrame.style.position = 'absolute';
	        }
}

window.addEventListener('load',positionFooter,false);
window.addEventListener('resize',positionFooter,false);
代码语言:javascript
复制
body {
background-color: blue;
}

#contentFrame {
height: 300px;
}


#date {
float: left;
}

#logOutFrame,
#contentFrame,
#headerFrame,
#menuFrame {
background-color: red;
}

#headerFrame {
margin-top: 30px;
}

#logOutFrame {
left: 0px;
position: absolute;
text-align: right;
top: 0px;
width: 100%;
}

#footerFrame {
display: block;
position: absolute;
bottom: 0px;
left: 0px;
width: 100%;
height: 50px;
background-color: orange;
text-align: center;
}

body, #contentFrame, #footerFrame, #footerFrame p {
margin: 0;
padding: 0;
}
代码语言:javascript
复制
<div id="logoutFrame">
  <span id="date"> Date </span>
  <span id="userEmail"> blah@pointwestcom.ph </span>
  <a id="signOutLink" href="#"> Sign Out </a>
</div>

<div id="headerFrame">
  <h1>Pointwest Logo</h1>
</div>

<div id="menuFrame">
  <ul>
    <li>A</li>
    <li>B</li>
  </ul>
</div>


<div id="contentFrame">
  // content
</div>



<div id="footerFrame">
  <p>footer</p>
</div>

​

票数 1
EN

Stack Overflow用户

发布于 2015-12-17 01:00:36

您应该使用<div style="clear:both;"></div>在页脚之前清除浮动,如下所示:

代码语言:javascript
复制
<div style="clear:both;"></div>
<div id="footerFrame">
  <p>footer</p>
</div>

但不需要对footerFrame absolute进行定位

代码语言:javascript
复制
#footerFrame {
  background-color: orange;
  text-align: center;
  width: 100%;
}

要了解更多有关FLOATS和的信息,请查看以下内容:https://css-tricks.com/all-about-floats/

票数 0
EN

Stack Overflow用户

发布于 2015-12-17 01:02:13

你的内容有多大?

如果从#footerFrame css中删除“position :absolute;”或“bottom:0px;”,页脚将向上移动到页面内容下的位置。

如果您的内容不够大,无法填满整个窗口,则可能不需要这样做。

已经有许多脚注解决方案,所以如果你搜索它们,它会向你展示许多方法,你可以实现一个脚注解决方案,这将为你工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34316745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档