CSS Grid ist ein zweidimensionales Layout-System für Webseiten. Im Gegensatz zu Flexbox können gleichzeitig Zeilen und Spalten kontrolliert werden.
display: grid.
.container {
display: grid;
}
Alle direkten Kinder werden automatisch Grid-Items.
grid-template-columns und
grid-template-rows definiert.
.container {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
}
fr steht für einen Anteil des verfügbaren Platzes.
<div class="page">
<header>Header</header>
<nav>Navigation</nav>
<main>Inhalt</main>
<footer>Footer</footer>
</div>
.page {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
}
header {
grid-column: 1 / 3;
}
nav {
grid-row: 2;
}
main {
grid-row: 2;
grid-column: 2;
}
.page {
display: grid;
grid-template-areas:
"header header"
"nav main"
"footer footer";
grid-template-columns: 200px 1fr;
}
header { grid-area: header; }
nav { grid-area: nav; }
main { grid-area: main; }
footer { grid-area: footer; }
gap definiert.
.container {
gap: 1rem;
}
@media (max-width: 700px) {
.page {
grid-template-columns: 1fr;
grid-template-areas:
"header"
"nav"
"main"
"footer";
}
}