我希望内容占据浏览器窗口的全部高度,但不能超越.
当使用100vh作为容器高度时,我可以看到垂直滚动条出现.
.container {
height: 100vh;
border: 3px solid lightsteelblue;
border-radius: 10px;
}
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
编辑: 更详细的代码:
CSS
html, body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
.container {
height: 100vh;
margin: 0px;
padding: 0px;
}
.page_content {
height: 85vh;
width: 95vw;
border: 3px solid lightsteelblue;
border-radius: 10px;
overflow-y: auto;
margin: 0 auto;
}
.footer {
height: 14vh;
width: 95vw;
margin: 0px auto;
padding: 0px;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<html>
<body>
<div class="container">
<div class="page_content">
...
</div>
<div class="footer">
...
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Mr.*_*dya 15
默认情况下body,html分配给margin或padding映射到某些像素.尝试使用以下代码.
1vh = 1%的veiwport高度100vh = 100%的高度.
所以永远不要计算身高 - 3px.像这样
body,html {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
有一个用户代理样式表可以添加到任何 Web 文档中,它只是每个浏览器应用于正在查看的文档的默认样式集,但是这些规则的优先顺序非常低。当然,作者可以超越这些规则,而且他们经常这样做。
从今天开始,如果作者没有添加或覆盖,Google Chrome 会向您的文档添加 8px 边距。
因此,让我们考虑一下您在整个 HTML 文档中添加了一个名为 .container 的 div。你可以尝试做这样的事情。
body {
margin: 0;
height: 100vh;
}
.container {
height: 100%;
//if you want to add border to this container,
border: 1px solid cyan;
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
此外,如果容器内有任何其他 div,它们将利用 .container class 100vh 值。您可以将 70% 的高度分配给 .page-content,将 30% 的高度分配给 .footer div。
.page-content {
height: 70%
border: 1px solid aquablue;
box-sizing: border-box;
}
.footer {
height: 30%;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
问题是您有一个边框,并且像填充一样,您必须将其添加到自己的高度。
您可以使用以下方法:
.container {
height: calc(100vh - 3px);
}
Run Code Online (Sandbox Code Playgroud)
或这个 :
.container {
height: 100vh;
border: 3px;
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
use
body{
margin :0px;
}
and
.container {
height: 100vh;
border: 3px;
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)