Определив свои области шаблона, вы определили сетку с элементами 8x3. По умолчанию эти элементы будут иметь автоматическую ширину и автоматическую высоту, как показано ниже:
.container {
display:grid;
grid-template-areas:
"hd hd hd hd hd hd hd hd"
"sd sd sd main main main main main"
"ft ft ft ft ft ft ft ft";
border:1px solid;
}
<div class="container">
</div>
Высота будет равна 0, поскольку содержимого нет, а ширина вашего контейнера будет разделена поровну на 8 столбцов.
ЕслиВы добавляете template-колонки / строки, вы будете точно определять ширину / высоту дорожек сетки. Определив только 3 числа внутри grid-template-columns
, вы определите ширину только для первых 3 столбцов, а остальные останутся auto
. Та же логика с grid-template-rows
.container {
display:grid;
grid-template-columns: 50px 50px 50px;
grid-template-rows: 50px 60px;
grid-template-areas:
"hd hd hd hd hd hd hd hd"
"sd sd sd main main main main main"
"ft ft ft ft ft ft ft ft";
border:1px solid;
}
<div class="container">
</div>
Если я рассмотрим приведенный выше код, у вас будет 50px 50px 50px auto auto auto auto auto
для столбцов и 50px 60px auto
для строк.
Чтобы быть более точным, вот описание для разделения:
Размер явной сетки определяется большим числом строк / столбцов , определяемым grid-template-areas
и количество строк / столбцов размером grid-template-rows
/ grid-template-columns
. Любые строки / столбцы, определенные как grid-template-areas
, но не имеющие размера grid-template-rows
/ grid-template-columns
, берут свой размер из свойств grid-auto-rows
/ grid-auto-columns
. ref
Как вы можете ясно видеть, мы попадаем в случай, когда у нас есть строки / столбцы размером не grid-template-rows
/ grid-template-columns
поэтому их размер будет определяться как grid-auto-rows
/ grid-auto-columns
, где значение по умолчанию установлено на auto
. Вы можете отрегулировать значение, чтобы получить другой результат:
.container {
display:grid;
grid-template-columns: 50px 50px 50px;
grid-template-rows: 50px 60px;
grid-auto-columns:10px;
grid-auto-rows:20px;
grid-template-areas:
"hd hd hd hd hd hd hd hd"
"sd sd sd main main main main main"
"ft ft ft ft ft ft ft ft";
border:1px solid;
}
<div class="container">
</div>
Приведенный выше код даст использование 50px 50px 50px 10px 10px 10px 10px 10px
для столбцов и 50px 60px 20px
для строк.