我在body元素上应用了一个渐变背景。然后,在body元素之后,有一个容器(#body2),其背景是一个.png图像。渐变总是会扩展到至少100%的窗口高度,但容器(#body2)没有。
为什么不起作用?您可以在我的网页上检查HTML:http://www.savedeth.com/parlours/
我在body元素上应用了一个渐变背景。然后,在body元素之后,有一个容器(#body2),其背景是一个.png图像。渐变总是会扩展到至少100%的窗口高度,但容器(#body2)没有。
为什么不起作用?您可以在我的网页上检查HTML:http://www.savedeth.com/parlours/
在第1358行上,对于html
、body
和#body2
元素,指定height: 100%
。
html, body, #body2
{
height: 100%;
min-height: 100%;
}
未在IE 6中测试,在7中可以正常工作。
min-height:100%
添加一个div
,那么该div
将完美地延伸到body
的高度。如果您随后在第一个div
中再添加另一个div
,并尝试使用min-height:100%
,则它将无法正常工作。您必须通过每个级别向下传播height:100%
,以便包含预期延伸到100%高度的子元素(这就是为什么CSS样式应用于html
和body
的原因),在这种情况下意味着直接位于body
下面的div
。 - Engineer使用 vh 替代 % 对我有用,而不需要使用任何额外的技巧。
这是我拥有的内容:
html, body, .wrapper {
min-height: 100vh;
}
当你希望容器/包装器或主内容的类为 .wrapper 时,它将使内容延伸至全屏高度。
当包装器内的内容少于或多于屏幕高度时,它将按预期工作。
这应该在大多数浏览器中运行。
你将最小高度设置为100%,这只会与填充空间的任何元素一样高。请用像素来表达您的最小高度。此外,请注意IE6-需要它自己的一套规则。有关更多详细信息,请参见http://davidwalsh.name/cross-browser-css-min-height。
position: absolute;
在大多数情况下都是有效的。例如:
#body2 {
position: absolute;
min-height: 100%;
}
html, body {
min-height: 100vh;
}
.wrapper {
min-height: calc(100vh - <margin-top + margin-bottom>px);
}
某些东西正在将您的body元素的高度设置为320像素(如果您在Chrome的检查元素中查看)
因此,100%是320像素。这就是为什么它只显示在页面顶部,高度为320像素的100%。
您必须设置一个高度才能使min-height起作用。
因此,通常情况下将高度设置为100%应该可以解决问题。
<script type="text/javascript">
$(document).ready(function(){
if($("body").height() < $(window).height()){
$("body").height($(window).height());
}
});
</script>