display: grid

Dev css IT 67

Такий шаблон, як на малюнку, можна зробити тільки за допомогою display: grid

І код неймовірно простий та елегантний:

// придумуємо псевдоніми для блоків
.item1 {
  grid-area: header;
}
.item2 {
  grid-area: left;
}
.item3 {
  grid-area: main;
}
.item4 {
  grid-area: right;
}
.item5 {
  grid-area: footer;
}

// складаємо схему
.grid-container {
  display: grid;
  grid-template-areas:
    'header header header header right right'
    'left main main main right right'
    'left footer footer footer footer footer';
  grid-gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

Я трохи напіздів. Таку схему можна зробити за допомогою display: table. Але є нюанси)

table {
  width: 100%;
  background-color: #2196F3;
  border-collapse: collapse;
}
td{
  text-align: center;
  padding: 20px 0;
  border: 10px solid #2196F3;
  font-size: 30px;
  background-color: rgba(255, 255, 255, 0.8);
}
<table>
  <tr>
    <td colspan="3">Header</td>
    <td colspan="2" rowspan="2">Left</td>
  </tr>
  <tr>
    <td colspan="2" rowspan="2">Right</td>
    <td>Main</td>
  </tr>
  <tr>
    <td colspan="3">Footer</td>
  </tr>
</table>

-- така схема не є адаптованою і потрібно правити html-розмітку.