【发布时间】:2018-11-22 20:33:22
【问题描述】:
我正在尝试创建全屏应用界面。在名为“view-with-wisdebar”的区域中应该有一个滚动区域。 “内容”区域也应该滚动,以使“选项”保持静态。
我正在使用其中一个弹性盒后代的视口单位来近似弹性高度。标题应该是静态的。 main 应该有一个灵活的高度,里面有滚动区域。页脚应该是静态的。
问题是内容永远不会匹配视口高度。不使用“溢出自动”元素。我以为我已经做到了,但后来我增加了一些页眉高度和页脚离开了底部!
如您所见,我希望页眉和页脚固定在顶部和底部,并且我希望中间部分灵活。中间部分应包含一个固定高度的导航栏和一个灵活的视图区域。
https://jsfiddle.net/p47o5yfe/6/
-- 编辑:第二个链接以大致显示所需的效果
https://jsfiddle.net/p47o5yfe/8/
-- 编辑:我进一步简化了问题
https://jsfiddle.net/p47o5yfe/10/
.wrapper {
display: flex;
flex-direction: column;
}
.header {
flex-grow: 0;
flex-shrink: 0;
}
main {}
.view-controller {}
.navbar {}
.view-with-sidebar {
display: flex;
flex-grow: 1;
flex-shrink: 1;
overflow: auto;
height: calc(100vh - 300px);
}
.sidebar {
width: 100px;
}
.view {
width: 100%;
}
.options {
float: left;
margin-right: 10px;
}
.content {
overflow-x: auto;
}
footer {
flex-grow: 0;
flex-shrink: 0;
}
<div class="wrapper">
<header class="header">
Header
</header>
<main>
<div class="view-controller">
<div class="navbar">
Navbar
<div class="view-with-sidebar">
<div class="sidebar">
Sidebar
</div>
<div class="view">
<div class="options">
Options
</div>
<div class="content">
Content
</div>
</div>
</div>
</div>
</main>
<footer>
Footer
</footer>
</div>
【问题讨论】:
-
我实际上回答了我的帖子,说我解决了这个问题,但事实并非如此。我使用 calc(视口高度 - 固定高度)jsfiddle.net/p47o5yfe/12 破解了它