Ваш контейнер не имеет дополнительной высоты. Таким образом, нет свободного места для устройства fr
для распределения.
Установите высоту для контейнера (например, height: 100vh
).
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
grid-gap: 5px;
text-align: center;
height: 100vh; /* new */
}
body {
margin: 0;
}
<div class="grid-container">
<div class="item"> 1 </div>
<div class="item"> 2 </div>
<div class="item"> 3 </div>
<div class="item"> 4 </div>
<div class="item"> 5 </div>
<div class="item"> 6 </div>
<div class="item"> 7 </div>
<div class="item"> 8 </div>
<div class="item"> 9 </div>
<div class="item"> 10 </div>
<div class="item"> 11 </div>
<div class="item"> 12 </div>
<div class="item"> 13 </div>
<div class="item"> 14 </div>
<div class="item"> 15 </div>
<div class="item"> 16 </div>
<div class="item"> 17 </div>
<div class="item"> 18 </div>
<div class="item"> 19 </div>
<div class="item"> 20 </div>
<div class="item"> 21 </div>
<div class="item"> 22 </div>
<div class="item"> 23 </div>
<div class="item"> 24 </div>
<div class="item"> 25 </div>
<div class="item"> 26 </div>
<div class="item"> 27 </div>
<div class="item"> 28 </div>
<div class="item"> 29 </div>
<div class="item"> 30 </div>
</div>
Я не понимаю, почему это не работает, так как блоки fr
работают с grid-template-columns
.
По умолчанию блочные элементы занимают всю ширину родительского элемента. Так что вам не нужно определять width: 100%
.
Не так с высотой. Большинство элементов по умолчанию установлены на высоту их содержимого (height: auto
). Поэтому вам нужно определить высоту, если вы хотите, чтобы контейнер был выше содержимого.
Именно поэтому fr
блоки работали с grid-template-columns
, но не grid-template-rows
.