我遇到一个问题,当我包含一个浮动元素时,我的粘性页脚不粘在底部,它将位于非浮动内容的末尾。
我的目标是,如果页面内容不能填满整个页面,请在页面窗口的底部放置FOOTER,而当内容溢出单个页面高度时,将其放置在页面CONTENT的底部。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="sticky.css"/>
<title>Sticky Footer Test</title>
</head>
<body>
<nav>
<div id="wrap">
<p class="navbargreen">Green Navigation Bar</p>
</div>
</nav>
<main>
<div id="wrap">
<p class="redtext">Lorem ipsum</p>
<div id="box1">Floater 1</div>
</div>
</main>
<footer>footer</footer>
</body>
</html>
Here is my CSS:
html {
position: relative;
min-height: 100%;
}
body {
margin: 0 0 100px; /* bottom = footer height */
}
main {
position: relative;
min-height: 100%;
}
#wrap {
margin: 0 auto;
width: 960px;
height: auto;
min-height: 100%;
padding: 0;
background-color: yellow;
}
.navbargreen {
height: 30px;
width: 960px;
background-color: greenyellow;
}
.redtext {
background-color: red;
height: 3000px;
}
#box1 {
float: left;
height: 400px;
width: 300px;
background-color: orange;
}
footer {
position: absolute;
left: 0;
bottom: 0;
height: 100px;
width: 100%;
background-color: purple;
}
这让我发疯了!
我已经用这个样机测试页在google上搜索并进行了丰富的实验,但让我失望了,我无法解决它:-(
我知道这与花车有关,但我无法解决!
最佳答案
小提琴
http://jsfiddle.net/czgoxafr/27/
* {
margin: 0;
}
html, body {
height: 100%;
}
.wrap {
min-height: 100%;
/* equal to footer height */
margin-bottom: -70px;
}
.wrap:after {
content: "";
display: block;
}
.site-footer, .wrap:after {
height: 70px;
}
.site-footer {
background: orange;
}