Подсказать в решении проблемы grid

Есть grid меню, в нём несколько элементов. Нужно чтобы первый и последний занимали все 100% по ширине, остальные 1/2(как и сейчас на скринах)введите сюда описание изображения

Текущий css:

                display: grid
                width: 100%
                grid-template-columns: repeat(2, 1fr)
                grid-template-rows: repeat(4, 1fr)
                grid-row-gap: resize(12)
                grid-column-gap: resize(15)


Ответы (2 шт):

Автор решения: artomich
.menu {
   display: grid;
   width: 100%;
   grid-template-columns: repeat(2, 1fr);
   grid-template-rows: repeat(4, 1fr);
   grid-template-areas:
    "first first"
    "second third"
    "fourth fifth"
    "sixth seventh"
    "eighth eighth";
   grid-row-gap: resize(12)
   grid-column-gap: resize(15)

Свойством grid-template-areas можно размечать grid с использованием условных названий блоков на странице. Нужно только синтаксически разместить эти имена по колонкам/рядам в соответствии с размерами, указанными в grid-template-rows и grid-template-columns, а затем выдать самим блокам свои названия по примеру:

grid-area: first;

Об этом свойстве лучше почитать в интернете.

→ Ссылка
Автор решения: Vladimir Rodichev

Вариант тебе на флексе:

.menu {
    display: flex;
    flex-wrap: wrap;
}
.item {
    width: calc(50% - 5px);
    border: solid 2px red;
    min-height: 200px;
    box-sizing: border-box;
    margin-bottom: 10px;
}
.item:nth-child(2n) {
    margin-right: 5px;
}
.item:nth-child(2n+1) {
    margin-left: 5px;
}
.item:first-child, .item:last-child {
    width: 100%;
    margin: 0 0 10px 0;
}
<div class="menu">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>

→ Ссылка