我遇到一个问题,当我包含一个浮动元素时,我的粘性页脚不粘在底部,它将位于非浮动内容的末尾。

我的目标是,如果页面内容不能填满整个页面,请在页面窗口的底部放置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;
}

09-25 16:51