Свойство CSS `grid-template-columns`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с октября 2017 года.
Свойство grid-template-columns CSS задаёт имена линий и функции определения размеров треков для столбцов сетки.
Попробуйте
grid-template-columns: 60px 60px;
grid-template-columns: 1fr 60px;
grid-template-columns: 1fr 2fr;
grid-template-columns: 8ch auto;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-auto-rows: 40px;
grid-gap: 10px;
width: 200px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Синтаксис
/* Keyword value */ grid-template-columns: none; /* <track-list> values */ grid-template-columns: 100px 1fr; grid-template-columns: [line-name] 100px; grid-template-columns: [line-name1] 100px [line-name2 line-name3]; grid-template-columns: minmax(100px, 1fr); grid-template-columns: fit-content(40%); grid-template-columns: repeat(3, 200px); grid-template-columns: subgrid; /* <auto-track-list> values */ grid-template-columns: 200px repeat(auto-fill, 100px) 300px; grid-template-columns: minmax(100px, max-content) repeat(auto-fill, 200px) 20%; grid-template-columns: [line-name1] 100px [line-name2] repeat(auto-fit, [line-name3 line-name4] 300px) 100px; grid-template-columns: [line-name1 line-name2] 100px repeat(auto-fit, [line-name1] 300px) [line-name3]; /* Global values */ grid-template-columns: inherit; grid-template-columns: initial; grid-template-columns: revert; grid-template-columns: revert-layer; grid-template-columns: unset;
Значения
-
none - Указывает, что явная сетка отсутствует. Любые столбцы будут созданы неявно, а их размер будет определяться свойством
grid-auto-columns. -
[line-name] <custom-ident>, задающий имя линии в этом месте. Идентификатором может быть любая допустимая строка, кроме зарезервированных словspanиauto. У линий может быть несколько имён, разделённых пробелами внутри квадратных скобок, например[line-name-a line-name-b].-
<length> - Неотрицательная длина, задающая ширину столбца.
-
<percentage> - Неотрицательное значение
<percentage>относительно размера сеточного контейнера по строчной оси. Если размер сеточного контейнера зависит от размера его треков, браузер считает процентное значение равнымauto. Браузер может скорректировать вклад трека во внутренний размер сеточного контейнера и увеличить окончательный размер трека на минимальную величину, необходимую для соблюдения процентного значения. -
flex -
Неотрицательная величина с единицей
fr, задающая коэффициент гибкости трека. Каждый трек с размером<flex>получает долю оставшегося пространства пропорционально своему коэффициенту гибкости.Если это значение указано вне записи
minmax(), оно подразумевает автоматический минимальный размер (то естьminmax(auto, <flex>)). -
max-content - Ключевое слово, обозначающее наибольший максимальный вклад содержимого элементов сетки, занимающих трек. Например, если первый элемент трека содержит предложение "Repetitio est mater studiorum", а второй — предложение "Dum spiro, spero", максимальный вклад содержимого определяется размером самого длинного предложения среди всех элементов сетки — "Repetitio est mater studiorum".
-
min-content - Ключевое слово, обозначающее наибольший минимальный вклад содержимого элементов сетки, занимающих трек. Например, если первый элемент трека содержит предложение "Repetitio est mater studiorum", а второй — предложение "Dum spiro, spero", минимальный вклад содержимого определяется размером самого длинного слова среди всех предложений в элементах сетки — "studiorum".
-
minmax(min, max) - Функциональная запись, задающая диапазон размеров, который не меньше min и не больше max. Если max меньше min, значение max игнорируется, а функция рассматривается как min. В качестве максимального значения
<flex>задаёт коэффициент гибкости трека. В качестве минимального значения оно недопустимо. -
auto -
В качестве максимального значения представляет наибольший размер
max-contentэлементов в этом треке.В качестве минимального значения представляет наибольший минимальный размер элементов в этом треке (задаваемый свойствами
min-width/min-heightэлементов). Часто он соответствует размеруmin-content, но не всегда.Если
autoиспользуется вне записиminmax(), оно задаёт диапазон между описанными выше минимальным и максимальным значениями. В большинстве случаев это работает аналогичноminmax(min-content,max-content).Примечание: размеры треков
auto(и только трековauto) можно растягивать с помощью свойствalign-contentиjustify-content. Поэтому по умолчанию трек размеромautoзанимает всё оставшееся пространство сеточного контейнера. -
fit-content( [ <length> | <percentage> ] ) - Представляет формулу
max(minimum, min(limit, max-content)), где minimum — это минимальный размерauto(часто, но не всегда равный минимальному размеруmin-content), а limit — функция определения размера трека, переданная в качестве аргумента fit-content(). По сути, значение вычисляется как меньшее изminmax(auto, max-content)иminmax(auto, limit). -
repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> ) - Представляет повторяющийся фрагмент списка треков и позволяет компактно записать большое количество столбцов, образующих повторяющийся шаблон.
-
subgrid - Значение
subgridуказывает, что сетка унаследует часть родительской сетки, занимаемую ею по этой оси. Вместо явного задания размеры строк/столбцов сетки берутся из определения родительской сетки.
Формальное определение
| Начальное значение | none |
|---|---|
| Применяется к | сеточным контейнерам |
| Наследуется | нет |
| Проценты | относительно соответствующего измерения области содержимого |
| Вычисленное значение | как задано, но относительные длины преобразованы в абсолютные |
| Тип анимации | простой список значений длины, процента или calc, если различия заключаются только в значениях компонентов длины, процента или calc в списке |
Формальный синтаксис
grid-template-columns = none | <track-list> | <auto-track-list> | subgrid <line-name-list>? <track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>? <auto-track-list> = [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <line-name-list> = [ <line-names> | <name-repeat> ]+ <line-names> = '[' <custom-ident>* ']' <track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( <length-percentage> ) <track-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <track-size> ]+ <line-names>? ) <fixed-size> = <fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> ) <fixed-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <fixed-size> ]+ <line-names>? ) <auto-repeat> = repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? ) <name-repeat> = repeat( [ <integer [1,∞]> | auto-fill ], <line-names>+ ) <track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto <inflexible-breadth> = <length-percentage> | min-content | max-content | auto <length-percentage> = <length> | <percentage> <integer> = <number-token> <fixed-breadth> = <length-percentage>
Примеры
Задание размеров столбцов сетки
HTML
<div id="grid"> <div id="areaA">A</div> <div id="areaB">B</div> </div>
CSS
#grid {
display: grid;
width: 100%;
grid-template-columns: 50px 1fr;
}
#areaA {
background-color: lime;
}
#areaB {
background-color: yellow;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль макета CSS Grid, уровень 2 # track-sizing |
| Модуль макета CSS Grid, уровень 2 # subgrids |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
grid-template-columns |
57 |
16
12–79
|
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
6.0 |
57 |
10.3 |
animation |
107 |
107 |
66 |
93 |
16 |
107 |
66 |
73 |
16 |
21.0 |
107 |
16 |
auto |
57 |
79 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
7.0 |
57 |
10.3 |
fit-content |
57 |
16 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
6.0 |
57 |
10.3 |
max-content |
57 |
79 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
7.0 |
57 |
10.3 |
min-content |
57 |
79 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
7.0 |
57 |
10.3 |
minmax |
57 |
16 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
6.0 |
57 |
10.3 |
none |
57 |
79 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
7.0 |
57 |
10.3 |
repeat |
57 |
16 |
76
57–76repeat(auto-fill, ...) и repeat(auto-fit, ...) поддерживают только один повторяющийся столбец (см. ошибку 1341507). |
44 |
10.1 |
57 |
79
57–79repeat(auto-fill, ...) и repeat(auto-fit, ...) поддерживают только один повторяющийся столбец (см. ошибку 1341507). |
43 |
10.3 |
6.0 |
57 |
10.3 |
subgrid |
117 |
117 |
71 |
103 |
16 |
117 |
79 |
78 |
16 |
24.0 |
117 |
16 |
См. также
grid-template-rowsgrid-template-areasgrid-template- Основы макета сетки: треки сетки
- Видео: Определение сетки
- Подсетка
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/grid-template-columns