Я пытаюсь создать полноэкранный интерфейс приложения.В области должна быть область прокрутки с именем view-with-wisdebar.Область «содержимого» также должна прокручиваться, чтобы «параметры» оставались неизменными.
Я аппроксимирую гибкую высоту, используя единицы просмотра для одного из потомков гибкого блока.Заголовок должен быть статичным.Основной должен иметь гибкую высоту с областью прокрутки внутри.Нижний колонтитул должен быть статическим.
Проблема в том, что содержимое никогда не соответствует высоте области просмотра.Элемент 'overflow auto' не используется.Я думал, что достиг этого, но затем я добавил еще немного высоты верхнего колонтитула, и нижний колонтитул опустился снизу!
Как вы можете видеть, я хочу, чтобы верхний и нижний колонтитулы были зафиксированы сверху и снизу, и я хочу среднюю частьгибкий.Средняя часть должна содержать навигационную панель с фиксированной высотой и гибкую область просмотра.
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>