为什么最小高度不起作用?

Dav*_*ave 35 html css background-image

所以这是独家新闻.

我有一个渐变应用于body元素的背景.然后我有一个容器(在身体后面),它有一个背景.png图像.渐变总是扩展到至少100%窗口高度,但容器(#body2)不会.

为什么这不起作用的任何建议?您可以在我的网页上查看HTML:http://www.savedeth.com/parlours/

wsa*_*lle 31

指定height: 100%html,body并且#body2元件(线1358).

html, body, #body2
{
    height: 100%;
    min-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

未在IE 6中测试,但在7中工作.

  • 这是另一个疯狂的事实,只是在Chrome 30.0的最小情况下进行测试:如果你创建一个只有上面的空页面,然后使用'min-height:100%`添加一个`div`,即`div`将伸展到'body`的高度.如果你在第一个内部添加另一个`div`,并尝试`min-height:100%`,_ it将无法工作_.你必须向每个级别传播`height:100%`,这个级别将包含预期伸展到100%高度的子元素(这就是CSS样式应用于_both_`html`和`body`的原因),在此case的意思是`div`直接在`body`下面. (12认同)
  • 是的,适用于主页,但不在"媒体"页面或任何超过100%的页面上. (4认同)
  • 救命之恩,谢谢!我什至没想到把 100% 放在 html 元素上!?! (2认同)

小智 18

使用vh而不是%为我工作,而不必使用任何额外的技巧.

这就是我所拥有的:

html, body, .wrapper {
    min-height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)

其中.wrapper是您应用于容器/包装器或内容主体的类,您希望将其拉伸到屏幕高度的整个长度.

当包装器中的内容小于或大于屏幕高度允许时,这将按预期工作.

这适用于大多数浏览器.

  • 请注意,100vh 不考虑滚动条高度(如果有) (2认同)

Dav*_*ave -9

算了。谁没有 javascript 呢?特别是对于这个人群。

<script type="text/javascript">
$(document).ready(function(){
if($("body").height() < $(window).height()){
    $("body").height($(window).height());
}
});
</script>
Run Code Online (Sandbox Code Playgroud)

  • 使用 JavaScript 并不好。你说自己去管它,但这不应该是事实上的最佳方法。不喜欢它得到了正确的答案。 (20认同)
  • 这根本没有回答“为什么” (4认同)