CSS Grid Layout

.container {
  display: grid;
  grid-template-columns: 100px 100px 150px;
  grid-template-rows: 150px 150px 100px;
  gap: 10px;
} 
/* вместо этого: */
grid-template-columns: 20% 20% 20% 20% 20%;
/* можно написать: */
grid-template-columns: repeat(5, 20%); 
grid-template-columns:repeat(6, 1fr); 
.block_size_big {
  grid-column-start: 1;
  grid-column-end: 3;
} 
.block_size_big {
  grid-column-start: -1;
  grid-column-end: -3;
  grid-row-start: 1;
  grid-row-end: 6;
} 

Чтобы каждый раз не считать линии, им можно давать имена. Цифровые названия линий останутся доступными. Имена линиям указывают в квадратных скобках на этапе создания строк и столбцов:

grid-template-rows: [aside-start] 300px [aside-end]; 

Чтобы задать элементу расположение, отсчитывая от линии с именем aside-start, нужно написать:

grid-row: aside-start / 4; 

Имя линии может быть любым, кроме ключевого слова span. Словом span указывают, какое количество строк или столбцов должен занимать элемент до или после какой-то линии. Например:

.block {
  grid-column-start: 2;
  grid-column-end: span 2;
  grid-row-start: span 2;
  grid-row-end: 3;
} 
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, 1fr);
  grid-template-areas:
  "header header header"
  "news news aside"
  "promo promo aside"
  ". footer footer";
} 
.header {
  grid-area: header;
} 

#css-grid