html - 带有两个子 div 的 div 会导致不需要的垂直滚动条

标签 html css

我想定义一个带有两个 div 的垂直布局,一个小的固定 div 在顶部,一个动态调整大小的在下面,这样底部的 div 将始终填满屏幕,仅此而已。所以我尝试如下定义它:

<html>
<body>
<div id="contents">
  <div id="nav" style="width: 100%; height: 20px;"></div> 
  <div id="container" style="width: 100%; height: 100%;"></div>
</div>
</body>
</html>

但是当我在 Firefox 中测试这个 html 时,它添加了一个垂直滚动条。似乎容器被赋予了窗口的 100% 高度,而不允许其上方有 20px 的 div。我错过了什么?

最佳答案

您可以在 #containerheight 上使用 calc(100% - 20px) - 这将从 100% 中减去 20px #container 高度,这样两个高度之和等于其父容器的 100%。但是,如果您使用百分比高度,则必须将它们添加到没有固定高度设置的更高级别的所有父级/元素,就像我在下面的代码片段中所做的那样,以便元素具有其百分比的引用值(value)观。

html,
body {
  height: 100%;
  margin: 0;
}

#contents {
  height: 100%;
}

#nav {
  height: 20px;
  background: blue
}

#container {
  height: calc(100% - 20px);
  background: red
}
<div id="contents">
  <div id="nav"></div>
  <div id="container"></div>
</div>

关于html - 带有两个子 div 的 div 会导致不需要的垂直滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288097/

相关文章:

css - 如何在 CMS 的所见即所得内容生成器/编辑器中向非技术客户提供向内容添加 css 类/ID 的选项?

javascript - 使用waitForKeyElements,是否可以防止显示关键元素,只有在我的代码修改后才显示?

jQuery 在 prev 中找到相同的 td。和下一行

javascript - 显示 DIV onclick 并隐藏 onclick with transition

javascript - 向后滚动时视差元素位置不同

javascript - 在浏览器上显示之前在后端预加载/刷新页面

javascript - 覆盖元素中的 JavaScript/HTML/CSS/etc... 文件

javascript - OnClick 垂直菜单而不是悬停

html - 如何选择子节点而不是第一个元素

css - 更改默认颜色选择器框