当容器使用"height:100vh"时,会出现垂直滚动条

coo*_*kya 15 css

我希望内容占据浏览器窗口的全部高度,但不能超越.

当使用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分配给marginpadding映射到某些像素.尝试使用以下代码.

1vh = 1%的veiwport高度100vh = 100%的高度.

所以永远不要计算身高 - 3px.像这样

body,html {
    margin: 0;
    padding: 0;
}
* {
    box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,它对我没有帮助。改回页脚中的默认字体确实解决了这个问题...所以我在页脚中添加了“height: 1.5rem”,它就解决了这个问题。我想 vh/flex-grow 如何计算某些字体的高度有一些优势 (2认同)

Ash*_*ngh 9

有一个用户代理样式表可以添加到任何 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)