html - 可滚动的 flex 列将文档高度推到 100% 以上,导致 2 个滚动条
问题描述
我有一个 2 行的 flexbox。在第二行中,我有一个包含 2 列的 flexbox,当内容溢出时,第二列变为可滚动的。但是,当它变得可滚动时,文档也变得可滚动(一点点 - 就像第一行的高度被添加到文档的高度一样)。
我已经为所有父母设置了 100% 的高度并进行了很多调试,但无法解决这个问题。我看不出出了什么问题。
我在这个 Js Bin 中复制了这个问题:https ://jsbin.com/lesoledoqo/1/edit?html,output
有任何想法吗?
代码:
<html style="height: 100%;">
<body style="height: 100%; padding: 0; margin: 0;">
<div style="display: flex; flex-direction: column; height: 100%;">
<div style=" background-color: gray">
Content 1
</div>
<div style="display: flex; background-color: green; height: 100%;">
<div style="background-color: blue;">
Content 2.1
</div>
<div style="background-color: yellow; height: 100%; overflow-y: auto;">
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2<br />
Content 2.2
</div>
</div>
</div>
</body>
</html>
解决方案
代码及其行为没有任何问题,它按编码工作。
如果您只想在第二行的列上而不是在整个文档上使用滚动条,那么这样做 -
- 给第一行一些固定的高度,比如说 40px
- 然后使用 CSS 的 calc() 方法为第二行提供 100vh - 40px 的高度。
vh - 视图高度
在这里演示
height: calc(100vh - 40px);
推荐阅读
- android - 尝试复制我的 Android Studio 项目并使其运行
- python - list = [] 与 list.clear() 之间的区别
- html - 如何使用单引号使 vscode 自动完成 HTML 标签的属性?
- java - TabLayout 中的 AsyncTask
- html - 如何在 CSS 中找到关注孩子的兄弟姐妹
- python - 带有附加字典的熊猫从宽到长
- python - 如何创建一个用户只能在 django 网站上点赞一次的点赞按钮?
- php - 我们可以根据不同的语言使用多种字体使用干预库创建覆盖文本吗?
- javascript - 正则表达式使用 javascript 检查数字长度并允许长度在 6 到 8 之间
- java - 如何从我输入到 FireStore 的数据中向地图添加自定义标记