Короткий ответ
Когда вы говорите:
wrapper {
display:grid;
grid-template-columns: 1fr 1fr 700px;
}
... вы определяете сетку с тремя явными столбцами.
Когдавы переключаетесь на:
grid-template-columns: 1fr 700px
... вы определяете сетку с двумя явными столбцами.
Этот метод представляет только один способ создания столбцов в сетке.
Другой способ - через неявные столбцы, которые вы делаете со свойствами grid-column-start
и grid-column-end
.
header {
grid-column-start: 1;
grid-column-end: 4;
}
aside {
grid-column-start: 1;
grid-column-end: 3;
}
article {
grid-column-start: 3;
grid-column-end: 4;
}
Неважно, сколько столбцов вы определяете на уровне контейнера в терминах неявной сетки.Вы можете определить ни один, если хотите.Столбцы также можно создавать на уровне области сетки.
Подробнее о явных и неявных сетках
и явных сетках - это сетка, которую вы явно определяете.Явная сетка создается при использовании следующих свойств:
grid-template-rows
grid-template-columns
grid-template-areas
grid
(что является сокращением для трех указанных выше свойств, среди прочих )
Однако вы не обязаны хранить элементы сетки в явной сетке.Вы можете по существу размещать элементы и создавать области сетки где угодно, даже вне явной сетки.Вот тут и появляется неявная сетка.
Неявная сетка создается строками и столбцами, которые автоматически генерируются для размещения элементов сетки, которые расположены за пределами явной сетки.Это может произойти с позиционным размещением с использованием таких свойств, как grid-column-start
, grid-row-end
и сокращений, таких как grid-column
и grid-row
.
В то время как явные дорожки grid-template-columns
и grid-template-rows
, неявные дорожки grid-auto-columns
и grid-auto-rows
.
Ссылка
Вот как спецификация определяетэти типы сетки:
7.1.Явная сетка
Три свойства grid-template-rows
, grid-template-columns
и grid-template-areas
вместе определяют явную сетку контейнера сетки.
* grid
свойство - это сокращение, которое можно использовать для одновременной установки всех трех.
Конечная сетка может в конечном итоге увеличиться из-за элементов сетки, размещенных вне явной сетки;в этом случае будут создаваться неявные дорожки, размер этих неявных дорожек определяется свойствами grid-auto-rows
и grid-auto-columns
.
7.5.Неявная сетка
Свойства grid-template-rows
, grid-template-columns
и grid-template-areas
определяют фиксированное количество дорожек, образующих явную сетку.
Когда элементы сеткирасположены за пределами этих границ, контейнер сетки генерирует неявные дорожки сетки, добавляя неявные линии сетки в сетку.
Эти линии вместе с явной сеткой образуют неявную сетку.
* grid-auto-rows
и grid-auto-columns
свойства определяют размер этих неявных дорожек сетки.