Kolejna sztuczka, którą warto znać pracując z CSS Grid. Kontynuacja lekcji poprzedniej o gridzie. Do dzieła!

Ok, nasz HTML:

<body>
    <div class="grid-container">
        <div class="red">red</div>
        <div class="green">green</div>
        <div class="blue">blue</div>
    </div>
</body>

Nasz CSS:

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.red {
    background-color: red;
    grid-column: 1/-1;
}

.green {
    background-color: green;
}

.blue {
    background-color: blue;
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    height: 400px;
}

Damy teraz tekst wszystkim grid elementom na biało:

.grid-container > * {
    color: white;
}

A teraz najlepsze – możemy tym dzieciom też zrobić display grid. Nie po to, aby grida jakiegoś robić, ale tylko po to, by korzystać z justify content i align content:

.grid-container > * {
    color: white;
    display: grid;
    justify-content: center;
    align-content: center;
}

Teraz tekst jest ładnie w środku. Ale wykomentujmy to:

.grid-container > * {
    color: white;
    display: grid;
    /* justify-content: center;
    align-content: center; */
}

Pobawimy się ustawieniami. Najpierw wycentrowanie lewo/prawa i góra/dół:

.red {
    background-color: red;
    grid-column: 1/-1;
    justify-content: center;
    align-content: center;
}

Teraz lewy, dolny róg:

.green {
    background-color: green;
    justify-content: start;
    align-content: end;
}

A teraz prawy górny:

.blue {
    background-color: blue;
    justify-content: end;
    align-content: start;
}

Jeżeli mamy jedno i drugie takie samo, to możemy użyć place content:

.red {
    background-color: red;
    grid-column: 1/-1;
    place-content: center;
}

Możemy też podawać dwie wartości, wtedy pierwsza, to align content, druga to justify content:

.green {
    background-color: green;
    place-content: center end; 
}

Powyżej mamy wyśrodkowany góra/dół, przesunięty najbardziej w prawo. Tekst, bo tym się bawimy. Cała sztuczka polega na tym, że nadajemy czemuś grid tylko po to, aby korzystać z justify content i align content.