Я пытаюсь создать страницу со следующим макетом:
+-------------------------------------------------------+
| |
| nav |
| |
+-------------------------------------------------------+
| |
| content that should not scroll (fixed) |
| |
+-------------------------------------------------------+
| |
| |
| Scrollable content |
| taking up remaining height |
| |
| |
| |
+-------------------------------------------------------+
Поскольку прокручиваемый контент должен занимать «оставшуюся высоту», я решил попробовать и использовать display: flex
, чтобы попытаться решить эту проблему.
Я добавил следующий класс ко всем элементам от прокручиваемого содержимого до первого элемента (#app
):
.flex {
display: flex;
flex-direction: column;
min-height: 0;
}
Сам прокручиваемый элемент имеет дополнительное свойство overflow-y: auto;
CSS.
Верхний элемент #app
обладает следующими свойствами, главное, высотой.
#app {
position: absolute;
top: 0;
bottom: 0;
height: 100%;
width: 100%;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
}
С этой настройкой я обнаружил, что с ростом прокручиваемого контента контент nav
и fixed
начинает расти все дальше и дальше.
Что вызывает это и как я могу предотвратить это? Я просто хочу страницу с некоторым фиксированным содержанием и элементом, который занимает оставшуюся высоту.
Вот кодекс моей страницы