html - 如何使 flex 容器填充浏览器窗口高度(具有滚动复杂性)
问题描述
我在 a和 a<main>
之间有一个 flex 容器,在那个容器中我有许多列。我已经设置了水平滚动来处理太多列无法一次显示的情况,并且我还启用了列的细分上的垂直滚动。目的是标题锚定在窗口的顶部,页脚锚定在窗口的底部,并且之间的空间用于显示列,并根据需要进行滚动。<header>
<footer>
<main>
<header>HEADER</header>
<main class="columns">
<div class="column">
<h3>column 1</h3>
<div class="content">
long content that would scroll
</div>
</div>
<div class="column"><h3>col2</h3><div class="content">...</div></div>
<div class="column"><h3>col3</h3><div class="content">...</div></div>
<div class="column"><h3>col4</h3><div class="content">...</div></div>
<div class="column"><h3>col5</h3><div class="content">...</div></div>
</main>
<footer>FOOTER</footer>
/* trimmed css */
header,
footer { }
main {
display: flex;
column-gap: 3px;
width: 100%;
height: 600px;
overflow-x: auto;
}
.column {
width: 200px;
min-width: 200px;
}
.column .content {
height: 570px;
overflow-y: scroll;
}
我在这里完成了大部分工作https://codepen.io/ericscheid/pen/mdMwyEE
该演示当前height: 600px;
为列硬编码 a。(也div.column div.content
设置为height: 570px;
,这是一个令人不满意的魔法数字破解,无法让滚动正常工作,如果任何div.column h3
元素溢出到两行,它就会中断。)
但是,我不知道如何让列容器元素填充浏览器窗口的可用高度。我尝试将各种高度设置为 100%,设置使用display:inline-block
... 但此时我只是将猜测放入黑匣子中。
如何让列填充可用高度?并让 scolling 正常工作(例如,如果有一个特大的<h3>
)。(如果可能的话,我宁愿不使用 javascript 来动态计算高度等)。
解决方案
推荐阅读
- c++ - 使用命名空间和模板类访问变量
- excel - Excel公式在工作簿中查找下一张表
- perforce - 如何在 Perforce 中获取添加文件的描述?
- c - http套接字请求返回尾随字符
- video - 如何使用 keras 构造 LSTM 的视频输入?
- mediawiki - 在 Semantic MediaWiki 中存储任意字符
- android - android构建中的ParseException
- gmail - 使用别名自动发送电子邮件
- python - 为什么将一个变量的值分配给另一个变量会保存在python的内存中?
- python-2.7 - 访问名称中包含点的 Python 字典元素