Причина, по которой вторая сетка имеет переполненные элементы div
, связана с вашим grid-gap
. Браузер отдает приоритет значению grid-gap
над имеющимися у вас fr
единицами. Из-за этого ваш браузер всегда пытается убедиться, что у вас есть grid-gap: 50px
, независимо от ширины родительского элемента (или экрана) .
Итак, если ширина вашего экрана (например) 375 пикселей (iPhone 11 Pro size), браузер сделает все возможное, чтобы получить grid-gap
50 пикселей, но вы столкнетесь с проблемами с размером div
, поскольку браузер пытается найти все свободное место для ваши div
элементы. В этом случае количество оставшегося места будет очень минимальным, поэтому вам придется использовать @media
запросов, чтобы изменить работу сетки при разной ширине экрана ... То есть, если вы непреклонны в сохранении 50px grid-gap
.
Другим решением было бы сделать ваш grid-gap
процентным. Таким образом, это будет динамическое c с любой шириной родительского элемента (или экрана) что у вас есть.
Итак, вкратце, ваша вложенная сетка не имеет достаточно места для своих div
элементов, потому что вложенная сетка уже настолько мала. Браузер отдает приоритет grid-gap: 50px
, поэтому во вложенной сетке не остается места для других столбцов.