身体元素之间的CSS粘性页脚间隙

时间:2016-02-24 17:11:34

标签: html5 css3

我对所有元素使用box-sizing: border-box;,我想制作一个粘性页脚,我尝试了许多不同的方法,但它不起作用。即使我使用position: relative;作为页脚,当我使用大约zoom: 33%时,底部和页脚之间也存在间隙。或者当他的页脚position: absolute; <section>页脚下,或者小缩放时,页脚与<section>之间存在间隙。请有人帮帮我。

&#13;
&#13;
* {
	margin: 0px;
	padding: 0px;
}

html {
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}

html {
	height: 100%;
	
	background-color: purple;
	border: 4px dotted purple;
}

body {
	position: relative;
	min-height: 100%;
	
	background-color: blue;
	border: 4px dotted lightblue;

	text-align:center;
	color: white;
}

nav {
	background-color: black;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 70px;
}

header, #page_1 {
	height: 800px;
	line-height: 800px;
}

header {
	background-color: green;
}

#page_1 {
	background-color: red;
	border: 4px solid yellow;
}

footer {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 100px;
	background-color: black;
	color: white;
}
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
  <title>...</title>
  <meta charset="UTF-8" />
</head>
<body>
	<nav>Navigation</nav>

	<header>Header</header>
			
	<section id="page_1">Section</section>
	
	<footer>FOOTER</footer>
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您是否已尝试使用http://ryanfait.com/sticky-footer/方法?

你必须把你的所有内容(除了页脚)放在一个像“wrapper”这样的类的div中。 您的导航处于固定位置,因此您也可以将其保留在包装器外部。 在包装器内部,在最后一个位置放置一个带有“push”类的div

然后使用此css

* {
margin: 0;
}
html, body {
    height: 100%;
}
.wrapper {
    min-height: 100%;
    height: auto !important; /* This line and the next line are not necessary unless you need IE6 support */
    height: 100%;
    margin: 0 auto -155px; /* the bottom margin is the negative value of the footer's height */
}
.footer, .push {
    height: 155px; /* .push must be the same height as .footer */
}