Ответ 1
Этот ответ состоит из четырех частей. Первые три помогают объяснить четвертый, который охватывает причину дополнительного столбца. Если вас интересует только ответ, перейдите к концу.
Содержание:
- Больше, чем кажется на первый взгляд: там также дополнительный ряд!
- Свойство
grid-area
. - Свойство
grid-template-areas
. - Размещение областей сетки без ссылок.
1. Больше, чем кажется на первый взгляд: там также дополнительный ряд!
Вы только частично определили проблему. Да, там дополнительный столбец. Но есть и дополнительный ряд.
Поскольку вы не определили высоту в контейнере сетки, высота по умолчанию равна auto
& ndash; высота содержимого (подробнее). Поэтому любые строки без содержимого просто сворачиваются и становятся невидимыми.
Эта проблема не существует с шириной, потому что в этом случае вы используете контейнер уровня блока (созданный display: grid
), который по умолчанию предназначен для использования всей ширины его родителя (подробнее)).
Так вот почему ты не видишь лишний ряд. Если вы зададите контейнеру некоторую высоту, появится строка.
body {
display: grid;
grid-template-areas:
"header"
"footer";
height: 150px; /* new */
}
body {
display: grid;
grid-template-areas:
"header"
"footer";
height: 150px; /* new */
}
header {
grid-area: header;
background: aqua;
}
main {
grid-area: main;
background: darkorange;
}
footer {
grid-area: footer;
background: lightgreen;
}
<header>Header</header>
<main>Main</main>
<footer>Footer</footer>