📚
Lerndokumentationen
Web
Web
  • Willkommen
  • HTML
    • Was ist HTML?
    • Elemente
    • Attribute
    • Boilerplate
  • Textelemente
  • Links
  • Dokumentenstruktur
  • Medien
  • Tabellen
  • Formulare
  • CSS
    • Was ist CSS?
    • Syntax
  • Einheiten
  • Selektoren
  • Boxmodell
  • Hintergründe und Rahmen
  • Overflow
  • Bilder
  • Formulare
  • Textelemente
  • Layout
    • Flexbox
    • Grid
  • Responsive Design
  • JavaScript
    • Was ist JavaScript?
    • Einbindung in HTML
    • Grundlagen
      • Variablen und Werte
      • Datentypen
      • Operatoren und Ausdrücke
      • Kontrollstrukturen
      • Schleifen
    • Funktionen
      • Funktionsdeklarationen vs. Funktionsausdrücke
      • Arrow Functions
      • Standardparameter und Rest-Parameter
      • First-Class und Higher-Order-Funktionen
      • Closures
      • IIFE (Immediately Invoked Function Expressions)
    • Arrays
      • Erstellen und Modifizieren
      • Iteration über Arrays
      • Sortieren
      • Nützliche Methoden
    • Objekte und Datenstrukturen
      • Erstellen und Manipulieren
      • Destructuring
      • Sets und Maps
    • Strings
      • Template Literals
      • Methoden
    • Moderne JavaScript-Features
      • Optionale Verkettung
      • Nullish Coalescing Operator
      • Spread und Rest Operator
      • Kurzschlussausdrücke
    • Scope und Kontext
      • this Keyword
      • Call, Apply und Bind
      • Hoisting und Temporal Dead Zone (TDZ)
    • Objektorientierte Programmierung
      • Prototypes
      • Constructor Functions
      • ES6 Classes
      • Die create()-Methode
    • Asynchronous JavaScript
      • AJAX
      • Promises
    • Zahlen, Daten, Internationalisierung und Timer
      • Mathematische Operationen
      • Datum und Zeit
      • Internationalisierung
      • Timer
    • Modules
    • JavaScript im Browser (DOM und Events)
      • Das DOM
      • Elemente auswählen, erstellen und manipulieren
      • Styles, Attribute und Klassen
      • Events und Event Listener
      • Event Propagation
        • Event Delegation
      • DOM Traversing
    • JavaScript Engine und Performance
      • Execution Context und Call Stack
  • TypeScript
    • Was ist TypeScript?
  • Compiler und Runtimes
  • Konfiguration
  • Types
    • Primitive Typen und Typableitung
    • Arrays und Tupel
    • Objekte
    • Top- und Bottom-Types
    • Enums
    • Utility Types
      • Records
  • Typenkombination
    • Union Types
    • Discriminated Unions
    • Intersections
  • Funktionen
  • Klassen
    • Grundlagen
    • Feldinitialisierer
    • Schreibgeschützte Felder
    • Implementieren
    • Private und Geschützte Member
    • Getter und Setter
    • Statische Member
    • Abstrakte Klassen und Member
  • Modules
    • Importieren und Exportieren
    • Ambient Types
    • Namespaces
    • Globals
  • React
    • Was ist React?
    • JSX
    • Komponenten
      • Root-Komponente
      • Styling
      • Listen
      • Conditional Rendering
      • Fragments
    • Props
      • Destructuring
      • Children
    • Interaktivität
      • Event Handling
      • State
      • Formulare
    • State Management
      • State anheben
      • Derived State
    • Komposition und Reusability
      • Komponentenstrukturierung
      • Prop Drilling
      • Komposition
Bereitgestellt von GitBook
Auf dieser Seite
  • Reihen und Spalten definieren
  • Template-Areas
  • Abstände
  • Ausrichtung
  • Die fr-Einheit
  • Sizing-Keywords
  • Sizing Funktionen
  • Die repeat()-Funktion und Keywords
  1. Layout

Grid

Das CSS-Grid-Layout ist ein zweidimensionales Layoutsystem für das Web. Es ermöglicht dir, Inhalte in Reihen und Spalten zu organisieren und bietet viele Features, um die Erstellung komplexer Layouts zu vereinfachen.


Zunächst müssen wir einen Grid-Container erstellen. Dafür nutzen wir die display-Eigenschaft.

.container {
  display: grid;
}

Reihen und Spalten definieren

Mit grid-template-columns bzw. grid-template-rows können wir Spalten und Reihen definieren.

.container {
  grid-template-columns: ...  ...;
  /* e.g. 
      1fr 1fr
      minmax(10px, 1fr) 3fr
      repeat(5, 1fr)
      50px auto 100px 1fr
  */
  grid-template-rows: ... ...;
  /* e.g. 
      min-content 1fr min-content
      100px 1fr max-content
  */
}

Den Grid-Linien werden automatisch Zahlen zugewiesen.


Nun können wir mit grid-column bzw. grid-row den Start und Ende eines Grid-Items bestimmen.

.item {
  grid-column:  / ;
  grid-row:  / ;
}

Template-Areas

Mit Template-Areas können wir bestimmten Bereichen unseres Grids einen Namen geben.

.container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: auto;
  grid-template-areas: 
    "header header header header"
    "main main . sidebar"
    "footer footer footer footer";
}

Mit grid-area können wir nun festlegen, welche Items zu welcher Area gehören.

.item {
  grid-area: header;
}

grid-area kann auch als Shorthand für grid-row und grid-column genutzt werden.

.item-d {
  grid-area:  / ;
}

Abstände

Mit gap können wir die Abstände zwischen den Reihen und den Spalten bestimmen.

.container {
  gap:  ;
}

Wenn wir column-gap nicht spezifizieren, nutzt es den selben Wert wie row-gap.

Ausrichtung

Mit justify-items kannst du Grid-Items anhand der Inline-Achse ausrichten.

.container {
  justify-items: start | end | center | stretch;
}

Mit align-items kannst du Grid-Items anhand der Block-Achse ausrichten.

.container {
  align-items: start | end | center | stretch;
}

place-items ist ein Shorthand für align-items und justify-items.

.center {
  display: grid;
  place-items: center / start;
}

Wenn die Grösse des Grids kleiner ist als der eigentliche Grid-Container können wir das Grid innerhalb des Containers ausrichten. Mit justify-content richten wir das Grid anhand der Inline-Achse aus.

.container {
  justify-content: start | end | center | stretch | space-around | space-between | space-evenly;    
}

Mit justify-content richten wir das Grid anhand der Block-Achse aus.

.container {
  align-content: start | end | center | stretch | space-around | space-between | space-evenly;    
}

place-content ist ein Shorthand für align-content und justify-content.

.container {
  display: grid;
  place-content: center;
}

Die fr-Einheit

Die fr-Einheit repräsentiert eine Fraktion des ürbigen Platzes.

.container {
  grid-template-columns: 1fr 3fr;
}

Die fr-Einheit kann aber natürlich auch in Kombination mit anderen Einheiten genutzt werden.

.container {
  grid-template-columns: 50px min-content 1fr;
}

Sizing-Keywords

min-content

Die Mindestgrösse des Inhalts. Stelle dir eine Textzeile wie „E pluribus unum“ vor. Der Mindestinhalt entspricht wahrscheinlich der Breite des Wortes „pluribus“.

max-content
auto

Dieses Schlüsselwort ist ähnlich wie die fr-Einheiten, mit dem Unterschied, dass sie bei der Zuteilung des verbleibenden Platzes den Kampf gegen die fr-Einheiten „verlieren“.

Sizing Funktionen

fit-content()

Nutzt den verfügbaren Platz, jedoch nie weniger als min-content und nie mehr als max-content.

minmax()

Legt einen Mindest- und einen Höchstwert für die Länge fest. Dies ist nützlich in Kombination mit relativen Einheiten. Zum Beispiel kannst du eine Spalte nur bis zu einer gewissen Breite schrumpfen lassen.

grid-template-columns: minmax(100px, 1fr) 3fr;

Die repeat()-Funktion und Keywords

Die Funktion repeat() kann einige Tipparbeit ersparen:

grid-template-columns:
  1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;

grid-template-columns:
  repeat(8, 1fr);

Aber repeat() kann besonders ausgefallen werden, wenn es mit Schlüsselwörtern kombiniert wird:

  • auto-fill: Passt so viele Spalten wie möglich in eine Zeile ein, auch wenn sie leer sind.

  • auto-fit: Passt alle vorhandenen Spalten in den Platz ein. Bevorzuge expandierende Spalten, um den Platz zu füllen, anstatt leere Spalten.

grid-template-columns: 
  repeat(auto-fit, minmax(250px, 1fr));
VorherigeFlexboxNächsteResponsive Design

Zuletzt aktualisiert vor 24 Tagen

Hier sagen wir, dass die erste Spalte ca. 14\frac{1}{4}41​ des Platzes und die zweite Spalte ca. 34\frac{3}{4}43​ des Platzes einnimmt.

Die maximale Grösse des Inhalts. Stelle dir den vor. Der maximale Inhalt ist die Länge des gesamten Satzes.

Mehr Informationen findest du in .

diesem Post
obigen Satz
Zahlenwerte im Grid-Layout
grid-column und grid-row
template-areas
grid-area
justify-items
align-items
justify-content
align-content
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing