作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我想将页脚放置在页面底部,该页脚也具有固定的页眉...
position: fixed
一起使用-我不希望它保留在屏幕上,它应该位于页面的末尾,并且在滚动时表现正常。 <div id="header">Header</div>
<div id="content">
<p>Some content...</p>
</div>
<div id="footer">Footer</div>
body{
/* Just to enable scrolling in JSFiddle */
height: 1000px;
}
#header{
width: 100%;
height: 100px;
position: fixed;
top: 0px;
z-index: 1;
}
#content{
width: 100%;
position: absolute;
top: 100px; /*Height of header*/
z-index: 0;
}
#footer{
width: 100%;
height: 100px;
position: absolute;
bottom: 0px;
}
/*For demo only*/
#header, #footer{
border: 3px dashed #333333;
background: #FFFFFF;
}
#content{
background: #CCCCCC;
height: 200px;
}
最佳答案
正如您已经提到的,position: fixed
将相对于视口(viewport)而不是页面本身定位页脚。因此,我们必须使元素保持正常流动,并以某种方式将其放置在页面底部。
有两种方法可以实现这一目标,这些方法在当时进行了广泛讨论。
例如:
<div id="content"> <!-- content goes here. It may (not) include the header --> </div>
<div id="footer">Footer</div>
height
和<html>
元素的<body>
设置为100%
。 #content
足够高以将#footer
向下推到页面上。因此,我们给#content
一个min-height
的100%
。 #content
已采用视口(viewport)高度的100%
,因此我们应将页脚向上拉以将其定位在页面底部。为此,我们可以给#content
一个与页脚的margin-bottom
等效的负height
。另外,为了确保页脚出现在内容的顶部,我们应该对页脚position
进行relative
。 Demo Here 。 #content
随其内容增长时,某些内容会在页脚后面。我们可以通过在#content
的末尾添加一个spacer元素或使用padding-bottom
和 box-sizing: border-box
2的组合(也应该是supported on IE8)来避免这种情况。 <div id="content">
<!-- content goes here -->
<div class="spacer"></div>
</div>
<div id="footer">Footer</div>
.spacer, #footer { height: 100px; }
padding-bottom
和
box-sizing
的组合
#content {
min-height: 100%;
margin-bottom: -100px; /* Equivalent to footer's height */
padding-bottom: 100px; /* Equivalent to footer's height */
box-sizing: border-box;
}
#content
中,如下所示:<div id="content">
<div id="header">Header</div>
...
#content
元素的内容。 #content
( Example Here )的开头添加一个空格:<div id="header">Header</div>
<div id="content">
<div class="header-spacer"></div>
<!-- content goes here -->
<div class="footer-spacer"></div>
</div>
<div id="footer">Footer</div>
padding-top
和box-sizing
的组合:<div id="header">Header</div>
<div id="content"> <!-- content goes here. --> </div>
<div id="footer">Footer</div>
#content {
min-height: 100%;
margin-bottom: -100px; /* Equivalent to footer's height */
padding-top : 50px; /* Equivalent to header's height */
padding-bottom: 100px; /* Equivalent to footer's height */
box-sizing: border-box;
}
box-sizing: border-box
声明(包括IE8)。但是,如果您正在寻找具有更广泛浏览器支持的传统方式,请坚持使用spacer元素。min-height: 100%
在#content
元素上工作所必需的(因为百分比值相对于盒子的包含块的height
由<body>
建立)。另外,<html>
应该有一个明确的 height
,以使height: 100%
可以在<body>
上使用。box-sizing: border-box
使UA计算框的width
/ height
(包括填充和边框)。position
或absolute
的元素。
关于html - 页脚位置固定在页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18469262/
我是一名优秀的程序员,十分优秀!