Для управления каждым элементом существуют другие свойства и задаются они непосредственно самому элементу, а не его контейнеру. К первому элементу Grid сетки можно обратится через псевдокласс nth-child .

CSS Grid. Практические примеры #4

Управление каждым элементом

Для управления каждым элементом существуют другие свойства и задаются они непосредственно самому элементу, а не его контейнеру. К первому элементу Grid сетки можно обратится через псевдокласс nth-child.

<div class="container">
    <div class="item">item-1</div>
    <div class="item">item-2</div>
    <div class="item">item-3</div>
    <div class="item">item-4</div>
</div>

align-self

По умолчанию у свойства align-self значение stretch. Это значит, что элемент растягивается на всю отведенную высоту. В CSS коде не нужно прописывать свойство с дефолтным значением. Данное свойство выравнивает элемент по вертикали.

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    / * align-self: stretch; * /
}


CSS Grid. Практические примеры #4.

Помимо stretch, свойство align-self может принимать три значения:

align-self: start

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    align-self: start;
}


CSS Grid. Практические примеры #4.

align-self: center

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    align-self: center;
}


CSS Grid. Практические примеры #4.

align-self: end

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    align-self: end;
}


CSS Grid. Практические примеры #4.

justify-self

Свойство justify-self выравнивает элементы по горизонтали и может принимать четыре значения. Значение stretch является дефолтным и работает по аналогии с предыдущим свойством. Впрочем, как и остальные три значения у данного свойства.

justify-self: start

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    justify-self: start;
}


CSS Grid. Практические примеры #4.

justify-self: center

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    justify-self: center;
}


CSS Grid. Практические примеры #4.

justify-self: end

.item:nth-child(1) {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    justify-self: end;
}


CSS Grid. Практические примеры #4.

Вложенные гриды

В любой элемент Grid сетки можно вкладывать другие элементы, только их так же необходимо сделать гридами. Вложим два блока в последний элемент сетки.

<div class="container">
<div>item-1</div>
<div>item-2</div>
<div>item-3</div>
<div>item-4</div>
<div class="span-2">item-5</div>
<div class="span-2 subitems">
    <div>sub-1</div>
    <div>sub-2</div>
</div>
</div>


.container {
    display: grid;
    grid-template-columns: repeat(4, 2fr);
    grid-gap: 20px;
}

.container div.subitems {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 10px;
}

.container div.subitems div {
    background-color: pink;
}

.span-2 {
    grid-column-end: span 2;
}

.container div {
    background-color: plum;
    padding: 8px;
}

.container div:nth-child(odd) {
    background-color: yellowgreen;
}


CSS Grid. Практические примеры #4.