Проблема создания столбца в полную высоту связана с макетом «Holy Grail» и на какое-то время решена с помощью flexbox и grid . .
Но, как уже упоминалось, для самого верхнего контейнера должно быть установлено значение min-height: 100vh
, чтобы это работало. Используйте min-height
вместо height
, чтобы элемент мог при необходимости расширяться.
Кроме того, я очистил этот HTML путем а) удаления ненужных элементов, классов и идентификаторов, б) перемещения header
за пределами nav
и c), помещая ваши навигационные ссылки в ul
с правильными атрибутами href
вместо src
.
body {
margin: 0;
min-height: 100vh;
display: flex;
flex-direction: row;
}
a {
color: inherit;
}
h1 {
font-size: 1.25rem;
margin: 1rem 0;
}
nav {
background-color: red;
padding: 2rem;
}
nav ul {
list-style: none;
padding: 0;
display: flex;
flex-direction: column;
}
nav li {
margin: 0 1rem 1rem 0;
}
nav a {
background-color: green;
}
main {
flex: 1;
display: flex;
flex-direction: column;
padding: 2rem;
}
main p {
height: 200rem;
}
@media screen and (max-width: 780px) {
body {
flex-direction: column;
}
nav ul {
flex-direction: row;
}
}
<body>
<header></header>
<nav>
<h1>Flexbox Documentation</h1>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Basics</a></li>
<li><a href="#">Flex Container Properties</a></li>
<li><a href="#">Flex Items Properties</a></li>
<li><a href="#">Examples</a></li>
</ul>
</nav>
<main>
<p>Main content</p>
</main>
</body>