Используя CSS Grid, я пытаюсь создать сетку, которая (иногда) занимает более 100%
высоты содержащего элемента. Как этого достичь?
При создании 3 строк, которые вместе принимают 100%
, явная сетка отображается очень хорошо:
![enter image description here](https://i.stack.imgur.com/vwKHS.png)
https://codepen.io/tommedema/pen/dKqwrZ?editors=1100#0
Однако, если предыдущие строки занимают более 100%, третья строка внезапно исчезает, даже если она явно определена:
![enter image description here](https://i.stack.imgur.com/MApSt.png)
https://codepen.io/tommedema/pen/jKvdOO?editors=1100#0
Обратите внимание, что полоса прокрутки не идет на 40% (140-100) дальше вниз, что я и ожидал.
Обновленный вопрос
При явном определении grid-row
от первой до последней строки хотя бы для одного дочернего элемента переполнение (и полоса прокрутки) действительно отображаются. Это удивительно, поскольку я ожидаю, что оно переполнится и без такого утверждения:
Новый CSS:
html, body {
height: 100%;
}
body {
background-color: #ddd;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 20% 100% 20%;
}
/*
allows for row overflow to not be cropped
see also https://stackoverflow.com/questions/51048661
*/
body::after {
content: "";
grid-row: 1 / -1;
}
https://codepen.io/tommedema/pen/MXqRPW?editors=1100#0
Еще более удивительно, когда вы помещаете сетку в эту сетку с такой же настройкой, уловка ::after
не работает для этой внутренней сетки.