我想让主体有100%的浏览器高度。我可以用CSS来做吗?
我试着设置高度:100%,但它不起作用。
我想为页面设置一个背景色来填充整个浏览器窗口,但如果页面内容很少,我就会在底部得到一个丑陋的白色条。
我想让主体有100%的浏览器高度。我可以用CSS来做吗?
我试着设置高度:100%,但它不起作用。
我想为页面设置一个背景色来填充整个浏览器窗口,但如果页面内容很少,我就会在底部得到一个丑陋的白色条。
当前回答
请检查这个:
* {margin: 0; padding: 0;}
html, body { width: 100%; height: 100%;}
或者尝试新的方法Viewport height:
html, body { width: 100vw; height: 100vh;}
视窗: 如果你使用视口意味着任何大小的屏幕内容都将达到屏幕的全高。
其他回答
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 100%;
}
html body {
min-height: 100%
}
适用于所有主要浏览器:FF, Chrome, Opera, IE9+。工作与背景图像和梯度。滚动条可根据内容需要使用。
如果你想保持正文的边缘,不想要滚动条,使用下面的css:
html { height:100%; }
body { position:absolute; top:0; bottom:0; right:0; left:0; }
设置body {min-height:100%}将为您提供滚动条。
参见http://jsbin.com/aCaDahEK/2/edit?html,output上的演示。
尝试将html元素的高度设置为100%。
html,
body {
height: 100%;
}
主体通过其父(HTML)查看如何缩放动态属性,因此HTML元素也需要设置它的高度。
然而,body的内容可能需要动态更改。 将min-height设置为100%将实现这一目标。
html {
height: 100%;
}
body {
min-height: 100%;
}
快速更新
html, body{
min-height:100%;
overflow:auto;
}
今天的CSS更好的解决方案
html, body{
min-height: 100vh;
overflow: auto;
}
在20多个答案之后,似乎没有一个人提到了我发现的最关键的因素——标记。
在尝试了这个问题和其他一些问题的基本每个答案之后,我重新构造了我的标记,如下所示:
<body>
<div class="section1">
<nav>
</nav>
...
</div>
<div class="section2">
</div>
</body>
本质上,它需要两个不同的外部容器。第一个容器用于包含导航栏,并将背景色/图像一直扩展到浏览器的高度,第二个容器用于包含“折叠以下”的所有内容——包括第二个背景色/图像。
这个解决方案允许第一个容器的背景一直扩展到底部,同时保持第二个容器的自由,以占用尽可能多的空间。
从这一点开始,唯一需要得到我和原始问题想要的结果的CSS如下:
body {
height: 100%;
}
.section1 {
height: 100%;
background: black; /* for demo purposes */
}
.section2 {
background: white; /* for demo purposes */
}