grid-template-columns
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с октября 2017 года.
Свойство grid-template-columns CSS определяет имена линий и функции задания размеров полос столбцов сетки.
Попробовать
Синтаксис
/* 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; grid-template-columns: masonry; /* <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.Если используется вне обозначения
minmax(),autoпредставляет диапазон между минимальным и максимальным значениями, описанными выше. Это работает аналогичноminmax(min-content,max-content)в большинстве случаев.Примечание: Размеры полос
auto(и толькоautoполос) могут быть растянуты свойствамиalign-contentиjustify-content. Поэтому по умолчанию полоса размераautoзаймёт всё оставшееся пространство в контейнере сетки. fit-content( [ <length> | <percentage> ] )-
Представляет формулу
max(minimum, min(limit, max-content)), где минимум представляетautoминимум (который часто, но не всегда, равенmin-contentминимуму), а предел — функция задания размера полосы, переданная в качестве аргумента fit-content(). Это по существу рассчитывается как меньшее из значенийminmax(auto, max-content)иminmax(auto, limit). repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )-
Представляет повторяющийся фрагмент списка полос, позволяющий записать большое количество столбцов с повторяющимся шаблоном в более компактной форме.
masonry-
Значение masonry указывает, что эта ось должна быть выложена в соответствии с алгоритмом masonry.
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 [0,∞]> )
<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 [0,∞]> |
<flex [0,∞]> |
min-content |
max-content |
auto
<inflexible-breadth> =
<length-percentage [0,∞]> |
min-content |
max-content |
auto
<length-percentage> =
<length> |
<percentage>
<fixed-breadth> =
<length-percentage [0,∞]>
Примеры
Указание размеров столбцов сетки
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 Layout Module Level 2 # track-sizing |
| CSS Grid Layout Module Level 2 # subgrids |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в IOS | Samsung Internet | WebView Android | |
grid-template-columns |
57 | 1612–79 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 6.0 | 57 |
animation |
107 | 107 | 66 | 93 | 16 | 107 | 66 | 73 | 16 | 21.0 | 107 |
auto |
57 | 79 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 7.0 | 57 |
fit-content |
57 | 16 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 6.0 | 57 |
masonry |
Нет | Нет | 77 | Нет | предварительный просмотр | Нет | Нет | Нет | Нет | Нет | Нет |
max-content |
57 | 79 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 7.0 | 57 |
min-content |
57 | 79 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 7.0 | 57 |
minmax |
57 | 16 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 6.0 | 57 |
none |
57 | 79 | 52 | 44 | 10.1 | 57 | 52 | 43 | 10.3 | 7.0 | 57 |
repeat |
57 | 16 | 7657–76repeat(auto-fill, ...) и repeat(auto-fit, ...) поддерживают только один повторяющийся столбец (см. ошибку 1341507). |
44 | 10.1 | 57 | 7957–79repeat(auto-fill, ...) и repeat(auto-fit, ...) поддерживают только один повторяющийся столбец (см. ошибку 1341507). |
43 | 10.3 | 6.0 | 57 |
subgrid |
117 | 117 | 71 | 103 | 16 | 117 | 79 | 78 | 16 | 24.0 | 117 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns