我喜欢根据窗口的高度创建我的样式,通常通过创建HTML和身体为100%
来做到这一点html, body{
min-height: 100%;
height: 100%;
}
然后,我可以根据下面的JSFIDDLE中所示的剩余元素的高度来设置剩余元素的高度。问题是,我希望我的页脚坚持下面,这对不会超出窗户高度的页面非常有用,但是如果他们这样做,则页脚将固定在那里。我该如何修复它,以使我仍然使用HTML,身体高度为100%,并且仍然使页脚始终保持底部。*注意:我已经完成了
的包装方式#wrapper{
min-height:100%;
}
这不太好,因为孩子们的身高无法正常工作。
http://jsfiddle.net/mmahalwy/m4ajl/
建议?
编辑:以这种方式解决了:http://jsfiddle.net/mmahalwy/7wqqf/
谢谢大家!
这是问题,
您使用的是2个CSS样式标签100%高度的每个命名class = block,如果您刚刚制作了一个高度为100%的主div,其中所有其他div都可以正常工作。
<body>
<container>
<div class="block">
<h1>Content</h1>
</div>
<div class="block">
<h1>Content</h1>
</div>
</container>
<footer>I am a footer</footer>
</body>
html, body {
min-height: 100%;
height: 100%;
}
container {
background: grey;
display: block;
height: 100%;
width: 100%;
}
.block {
height: auto;
}
footer {
background-color: blue;
color: white;
position: relative;
bottom: 0px;
width: 100%;
}
最好的答案可能取决于您需要哪种类型的浏览器兼容性。
IMHO,实现此目的的现代方法是使用CSS3 Flexbox,请参阅CSS-Tricks.com的此有用指南。
代码在此jsfiddle中:http://jsfiddle.net/m4ajl/24/。
html:
<body>
<div class="container">
<div class="block">
<h1>Content</h1>
</div>
<div class="block">
<h1>Content</h1>
</div>
<footer>I am a footer</footer>
</div>
</body>
CSS:
html, body{
min-height: 100%;
height: 100%;
padding: 0;
margin: 0;
}
body{
display: flex;
flex-direction: column;
}
.block{
display: block;
height: 100%;
}
footer{
background-color: blue;
color: white;
width: 100%;
flex: none;
}
.container{
flex: 1;
overflow-y: auto;
}