zhaoJians Tech-Notizen

IT-Kurs CSS-Grundlagen 031_Rasterlayout Grid

Lernen / CSS-Grundlagen ~12101 Wörter · 31 Min. Lesezeit - Aufrufe

Rasterlayout Grid

Ein Raster besteht aus einer Reihe von horizontalen und vertikalen Linien, die ein Layoutmuster bilden. Basierend auf dem Raster können wir Designelemente anordnen, um uns beim Entwerfen einer Reihe von Seiten mit Elementen fester Position und Breite zu helfen, wodurch unsere Website-Seiten einheitlicher werden.

Ein Raster verfügt in der Regel über viele Spalten (columns) und Zeilen (rows) sowie Abstände zwischen Zeilen und Spalten, die im Allgemeinen als Rinnen (gutter) bezeichnet werden.

Beispieleffekt

Grundkonzepte

Das Grid-Layout besteht aus folgenden Grundkonzepten:

  • Grid-Container (grid container): Das Grid-Layout besteht aus Grid-Containern und Grid-Items. Der Grid-Container ist der Container, der Grid-Items im Raster platziert. Der Grid-Container kann jedes Element sein, üblicherweise wird jedoch das div-Element verwendet.
  • Grid-Item (grid item): Grid-Items sind Elemente, die im Grid-Container platziert werden. Grid-Items können beliebige Elemente sein, üblicherweise werden jedoch div-Elemente verwendet.
  • Grid-Linie (grid line): Grid-Linien sind Linien, die den Grid-Container in Zeilen und Spalten unterteilen. Grid-Linien können horizontale oder vertikale Linien sein.
  • Grid-Spalte (grid column): Grid-Spalten sind vertikale Linien im Grid-Container.
  • Grid-Zeile (grid row): Grid-Zeilen sind horizontale Linien im Grid-Container.
Häufig verwendete Eigenschaften

Grid-Container-Eigenschaften

Der Grid-Container verfügt über folgende Eigenschaften zur Steuerung des Grid-Layouts:

  • display: Legt den Anzeigemodus des Grid-Containers fest. Der Grid-Container muss auf display: grid oder display: inline-grid gesetzt sein, um das Grid-Layout zu verwenden.
  • grid-template-columns: Legt die Anzahl der Spalten und Spaltenbreiten des Grid-Containers fest (mit Einheiten wie fr, px, em usw.).
  • grid-template-rows: Legt die Anzahl der Zeilen und Zeilenhöhen des Grid-Containers fest (mit Einheiten wie fr, px, em usw.).
  • grid-template: Setzt gleichzeitig grid-template-columns und grid-template-rows.
  • grid-auto-columns: Legt die Spaltenbreiten des Grid-Containers fest.
  • grid-auto-rows: Legt die Zeilenhöhen des Grid-Containers fest.

Grid-Item-Eigenschaften

Grid-Items verfügen über folgende Eigenschaften zur Steuerung des Layouts von Grid-Items im Raster:

  • grid-column: Legt die Spalte fest, in der sich das Grid-Item befindet.
  • grid-row: Legt die Zeile fest, in der sich das Grid-Item befindet.
  • grid-column-start: Legt die Startposition des Grid-Items in der Spalte fest.
  • grid-column-end: Legt die Endposition des Grid-Items in der Spalte fest.
  • grid-row-start: Legt die Startposition des Grid-Items in der Zeile fest.
  • grid-row-end: Legt die Endposition des Grid-Items in der Zeile fest.
  • grid-area: Legt den Bereich fest, in dem sich das Grid-Item befindet.
  • grid-gap: Legt den Abstand zwischen Grid-Linien fest.
Rasterlayout

Festlegen von festen und adaptiven Spaltenbreiten und Zeilenhöhen

Beispiel:

.grid-example{
display: grid;
grid-template-columns: 100px 200px auto;
/* Erste Spalte 100px, zweite Spalte 200px, verbleibender Platz für adaptive Spalte */
grid-template-rows: 100px 200px auto;
/* Erste Zeile 100px, zweite Zeile 200px, verbleibender Platz für adaptive Zeile */
}
.item{
margin: 10px;
background-color: rgb(100, 150, 200);
}
<div class="grid-example">
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
</div>

Effekt:

Beispieleffekt Verwendung von Prozentsätzen zur Definition von Spaltenbreiten und Zeilenhöhen

Beispiel:

.grid-example{
display: grid;
grid-template-columns: 30% 2fr 1fr;
/* Erste Spalte 30%, zweite Spalte zwei Teile des verbleibenden Platzes, dritte Spalte ein Teil des verbleibenden Platzes */
grid-template-rows: 30% 2fr 1fr;
/* Erste Zeile 30%, zweite Zeile zwei Teile des verbleibenden Platzes, dritte Zeile ein Teil des verbleibenden Platzes */
}
.item{
margin: 10px;
background-color: rgb(100, 150, 200);
}
<div class="grid-example">
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
</div>

Effekt:

Beispieleffekt Gleichmäßige Aufteilung (durchschnittliche Zuteilung) von Spaltenbreiten und Zeilenhöhen

Beispiel:

.grid-example{
display: grid;
grid-template-columns: repeat(3, 1fr);
/* Drei gleiche Spalten, jede Spalte nimmt ein Teil des verbleibenden Platzes ein */
grid-template-rows: repeat(3, 1fr);
/* Drei gleiche Zeilen, jede Zeile nimmt ein Teil des verbleibenden Platzes ein */
}
.item{
margin: 10px;
background-color: rgb(100, 150, 200);
}
<div class="grid-example">
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
</div>

Effekt:

Beispieleffekt Verwendung von minmax zur Definition der minimalen und maximalen Breite und Höhe von Spalten und Zeilen

Beispiel:

.grid-example{
display: grid;
grid-template-columns: minmax(100px, 1fr) minmax(200px, 2fr);
/* Erste Spalte minimale Breite 100px, nimmt ein Teil des verbleibenden Platzes ein; zweite Spalte minimale Breite 200px, nimmt zwei Teile des verbleibenden Platzes ein */
grid-template-rows: minmax(100px, 1fr) minmax(200px, 2fr);
/* Erste Zeile minimale Höhe 100px, nimmt ein Teil des verbleibenden Platzes ein; zweite Zeile minimale Höhe 200px, nimmt zwei Teile des verbleibenden Platzes ein */
}
.item{
margin: 10px;
background-color: rgb(100, 150, 200);
}
<div class="grid-example">
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
</div>

Effekt:

Beispieleffekt

Rasterabstände

Rasterabstände werden durch die beiden Eigenschaften grid-row-gap und grid-column-gap gesteuert. Darüber hinaus wurde in CSS Grid Level 2 die gap-Eigenschaft eingeführt, die gleichzeitig grid-row-gap und grid-column-gap steuern kann.

Beispiel:

.grid-example{
display: grid;
grid-template-columns: 30% 30% 30%;
grid-template-rows: 200px 200px;
grid-row-gap: 50px; /* Zeilenabstand 50px */
grid-column-gap: 30px; /* Spaltenabstand 30px */
/* gap: 50px 30px; Zeilenabstand 50px, Spaltenabstand 30px */
}
.item{
margin: 10px;
background-color: rgb(100, 150, 200);
}
<div class="grid-example">
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
<div class="item">Grid-Demo</div>
</div>

Effekt:

Beispieleffekt

Rasterpositionierung

Rasterpositionierung bezieht sich in der Regel auf die Verwendung von Eigenschaften wie grid-column, grid-row und grid-area zur Positionierung von Items im Grid-Layout. Diese Eigenschaften werden verwendet, um anzugeben, welche Spalten und Zeilen ein Item im Raster einnimmt, oder um direkt den Bereich anzugeben, in dem sich das Item befindet.

  • grid-column ist eine Eigenschaft zum Festlegen der Spalten, die ein Grid-Item überspannt. Es ist eine Abkürzung für grid-column-start und grid-column-end. Mit grid-column können Sie bequemer die Position und die Anzahl der überspannten Spalten eines Grid-Items in horizontaler Richtung definieren.
  • grid-row ist eine Eigenschaft zum Festlegen der Zeilen, die ein Grid-Item überspannt. Es ist eine Abkürzung für grid-row-start und grid-row-end. Mit grid-row können Sie bequemer die Position und die Anzahl der überspannten Zeilen eines Grid-Items in vertikaler Richtung definieren.
  • Die grid-area-Eigenschaft ist eine Abkürzungseigenschaft zum gleichzeitigen Festlegen der Eigenschaften grid-row-start, grid-column-start, grid-row-end und grid-column-end. Mit grid-area können Sie intuitiver die Position und Größe eines Grid-Items im Grid-Layout definieren.

Beispiel:

.example {
display: grid;
grid-template-columns: repeat(3, 1fr);
/* Definiert 3 Spalten, jede Spalte nimmt 1 Teil Platz ein */
grid-template-rows: repeat(2, 150px);
/* Definiert 2 Zeilen, jede Zeile hat eine Höhe von 150px */
gap: 10px;
padding: 20px;
}
.item {
background-color: #f2f2f2;
padding: 20px;
border: 1px solid #ddd;
text-align: center;
}
/* Positionierung mit grid-column und grid-row */
.item1 {
grid-column: 1 / 3; /* Von Spalte 1 bis Spalte 3 (1+2 Spalten) */
grid-row: 1 / 2; /* Von Zeile 1 bis Zeile 2 (1 Zeile) */
}
/* Positionierung mit grid-area */
.item2 {
grid-area: 2 / 2 / 3 / 4; /* Von Zeile 2, Spalte 2 bis Zeile 3, Spalte 4 (2 Zeilen) (2+3 Spalten) */
}
<div class="example">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
</div>

Effekt:

Beispieleffekt

Beispiel:

body {
margin: 0;
padding: 0;
}
.container {
display: grid;
grid-template-columns: 1fr 2fr;
/* Definiert zwei Spalten, erste Spalte nimmt ein Teil, zweite Spalte nimmt zwei Teile */
grid-template-rows: auto;
/* Definiert Zeilenhöhe, erste und dritte Zeile Höhe wird durch Inhalt bestimmt, zweite Zeile nimmt verbleibenden Platz */
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
/* Definiert Bereichslayout, jeder Bereich wird durch eine Zeichenfolge dargestellt, Leerzeichen trennen Zellen, Zeilenumbruch stellt neue Zeile dar */
min-height: 100vh;
/* Setzt minimale Höhe, stellt sicher, dass footer auch bei Inhaltshöhe kleiner als Viewport sichtbar bleibt */
}
.header {
grid-area: header;
/* Platziert .header im Bereich namens "header" */
background-color: #333;
color: #fff;
padding: 10px;
}
.sidebar {
grid-area: sidebar;
/* Platziert .sidebar im Bereich namens "sidebar" */
background-color: #f2f2f2;
padding: 10px;
}
.main {
grid-area: main;
/* Platziert .main im Bereich namens "main" */
padding: 10px;
}
.footer {
grid-area: footer;
/* Platziert .footer im Bereich namens "footer" */
background-color: #333;
color: #fff;
padding: 10px;
}
<div class="container">
<div class="header">Header</div>
<div class="sidebar">Sidebar</div>
<div class="main">
<h1>Main Content</h1>
<p>This is the main content area.</p>
</div>
<div class="footer">Footer</div>
</div>

Effekt:

Beispieleffekt

Teilen:

Kommentare