Клавиша / esc

grid-template-columns

Задаём количество и размер грид-колонок.

Время чтения: меньше 5 мин

Кратко

Скопировано

С помощью grid-template-columns задают, сколько колонок будет в грид-раскладке и какого они размера.

Пример

Скопировано

Внутри блока .container будет создано 3 колонки:

        
          
          .container {  display: grid;  grid-template-columns: 40px auto 40%;}
          .container {
  display: grid;
  grid-template-columns: 40px auto 40%;
}

        
        
          
        
      

Как пишется

Скопировано

Указывают столько размеров, сколько колонок нужно. Размеры можно задавать в любых единицах измерения и перечислять через пробел.

        
          
          .container {  display: grid;  grid-template-columns: 5px 50px 40% 14rem 8em 1fr;}
          .container {
  display: grid;
  grid-template-columns: 5px 50px 40% 14rem 8em 1fr;
}

        
        
          
        
      

Специальное значение subgrid позволяет дочернему грид-контейнеру наследовать треки родителя вместо создания собственных. Колонки дочернего элемента будут совпадать с колонками родительского грида.

        
          
          .parent {  display: grid;  grid-template-columns: 1fr 2fr 1fr;}.child {  display: grid;  grid-column: span 3;  grid-template-columns: subgrid;}
          .parent {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
}

.child {
  display: grid;
  grid-column: span 3;
  grid-template-columns: subgrid;
}

        
        
          
        
      

Это удобно для карточек с разным содержимым: когда нужно, чтобы заголовки и описания из разных карточек выравнивались по общей сетке, не требуя одинаковой высоты блоков.

Открыть демо в новой вкладке

Как понять

Скопировано

Свойство grid-template-columns командует браузеру, во сколько колонок выстраивать вложенные элементы. И какого размера должны быть колонки.

Подсказки

Скопировано

💡 Можно использовать функцию repeat() для создания колонок одного размера.

💡 Удобно использовать единицу измерения fr, чтобы указать, в каких соотношениях колонки разделят свободное место.

💡 Кроме непосредственного количества колонок и их размеров можно задавать и имена для грид-линий, ограничивающих эти колонки:

        
          
          .container {  display: grid;  grid-template-columns: [start] 140px [line2] 250px [line3] 40px [end];}
          .container {
  display: grid;
  grid-template-columns: [start] 140px [line2] 250px [line3] 40px [end];
}

        
        
          
        
      
Поддержка в браузерах:
  • Chrome 117, поддерживается
  • Edge 117, поддерживается
  • Firefox 76, поддерживается
  • Safari 16, поддерживается
О Baseline