Einführung in das CSS-Rasterlayout mit Beispielen

Was Sie erstellen werden

In diesem Lernprogramm werde ich die Grundlagen des CSS-Rasterlayouts mit Beispielszenarien behandeln. CSS Grid wird derzeit von fast allen modernen Browsern unterstützt und kann in der Produktion verwendet werden. Im Gegensatz zu anderen Layoutmethoden wie der Flexbox bietet das Rasterlayout zwei Freiheitsgrade, was es so vielseitig macht, dass die Positionierung der Elemente ein Kinderspiel ist.

HTML-Struktur für das CSS-Rasterlayout

Um das CSS-Grid-Layout zu verwenden, sollten Ihre HTML-Elemente eine bestimmte Struktur haben.

Sie müssen die Elemente, die Sie steuern möchten, in einen übergeordneten Container DIV einschließen.

1
2
3
4

Lassen Sie uns ein paar Stylings für unsere DIVs hinzufügen, damit wir sie leicht unterscheiden können.

Stellen Sie auch das ein Anzeige: Raster in deiner Verpackung DIV, damit wir das Rasterlayout verwenden können.

.Wrapper> div Hintergrundfarbe: Orange; Rand: 1px schwarzer Körper;  .wrapper> div: nth-child (ungerade) Hintergrundfarbe: indianred;  .wrapper display: grid

Von diesem Zeitpunkt an wird das gesamte Styling in die Verpackung DIV. Wenn wir jemals die untergeordneten DIVs steuern möchten, fügen wir gitterspezifische Stilregeln für die jeweiligen untergeordneten DIV hinzu.

Regeln für Eltern DIV

Die ersten Dinge, die wir über das Rasterlayout lernen müssen, sind Raster-Vorlage-Spalten und Raster-Vorlage-Zeilen. Diese beiden Regeln steuern im Wesentlichen die Form Ihres Gitters.

Der Wert dieser Regeln kann eine Länge, ein Prozentsatz oder ein Bruchteil des freien Platzes im Raster sein. Sie können auch einen beliebigen Wert auf einstellen Auto, was den verbleibenden Raum ausfüllt.

Nachfolgend einige Beispiele.

Grid-Template-Spalten & Grid-Template-Zeilen

Raster-Vorlage-Spalten

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: 100px 100px 100px
.Wrapper Anzeige: Gitter; Gitternetzvorlagen-Spalten: 100px auto 100px
.Wrapper Anzeige: Gitter; Raster-Template-Spalten: 1fr 1fr 1fr 1fr; 

Raster-Vorlage-Spalten & Raster-Vorlage-Zeilen

Beginnen wir mit dem Aufbau eines echten Gitters, in dem wir sowohl Spalten als auch Reihen steuern können.

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: 1fr 1fr; Raster-Vorlage-Zeilen: 50px 50px; 
.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: 100px 20px 250px; Raster-Vorlage-Zeilen: 150px 40px; 

Hier habe ich nur zwei weitere untergeordnete DIVs zum HTML für das gleiche CSS hinzugefügt.

Wiederholen Sie ein Raster-Schablonenmuster

Wenn Sie ein sich wiederholendes Muster für haben Raster-Vorlage,Sie können einfach wiederholen und angeben, wie oft das gleiche Muster wiederholt werden soll.

Angenommen, Sie haben 12 Elemente und möchten diese horizontal gleich breit auslegen. Du könntest es wiederholen 1fr 12 mal drinnen Raster-Vorlage-Spalten, das ist nicht effektiv. Stattdessen können Sie verwenden wiederholen (12, 1fr).

.Wrapper Anzeige: Gitter; Rastervorlagenspalten: wiederholen (12, 1fr)

Ebenso können Sie ein Muster wiederholen.

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr 5fr 10fr); 

Automatische Raster-Spalten und Automatische Rasterzeilen

Mit dieser Regel können Sie die Breite und Höhe von Gitterzellen festlegen.

Wenn Sie diese Regel nicht festlegen, werden Ihre Rasterzeilen und -spalten mit dem Inhalt erweitert.

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr); Raster-Auto-Zeilen: 100px; 
.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr); Raster-Auto-Zeilen: 20px 80px; 

Eine schöne Funktion, die Sie verwenden können Raster-Auto Regel ist die Minimal Maximal Funktion.

Sie legen einfach die minimale Größe als ersten Parameter und das Maximum als zweiten Parameter fest. Wenn du eingestellt hast Auto Für den zweiten Parameter erhalten Sie eine responsive Zellengröße.

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr); Raster-Auto-Zeilen: Minmax (50px, Auto)

Unten sehen Sie zwei verschiedene DIV-Inhalte mit den gleichen CSS-Regeln.

Gitterlücke

Wie der Name schon sagt, schafft diese Regel eine Lücke zwischen den Gitterzellen.

Wenn du benutzt Gitterlücke: 5px, Sie erhalten eine 5px-Lücke zwischen jeder Zelle. Alternativ können Sie nur die Zeilen- oder Spaltenlücken mit festlegen Rasterzeilenlücke: 5px und Gitterspaltenlücke: 5px beziehungsweise.

.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr); Raster-Auto-Zeilen: Minmax (50px, Auto); Gitterspalt: 5px; 

Regeln für untergeordnete DIVs

Bisher haben wir uns nur auf die Form des Gitters und der Elemente konzentriert, die gerade in das Gitter eingeflossen sind. Jetzt lernen wir, jeden Gegenstand einzeln zu steuern.

Um die Elemente zu positionieren, verwenden wir Rasterlinien als Referenz. Unten sehen Sie die Zeilen- und Spaltenlinien in Schwarz und Orange für ein 2x4-Gitter.

Wir werden die verwenden Rasterspalte und Rasterzeile Regeln mit Zeilennummern, um die Elemente zu positionieren.

Zum Beispiel, wenn wir einstellen Rastersäule: 1/3 Für das erste untergeordnete div werden die ersten beiden Zellen im Raster verwendet. 

Betrachten Sie das HTML und CSS unten:

1
2
3
4
5
6
7
8
.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: Wiederholung (4, 1fr); Raster-Auto-Zeilen: 100px; Gitterspalt: 5px; 

Wir haben vier gleich große Spalten und acht Elemente in der Verpackung DIV.

 .div1 Gitterspalte: 1/3;  
 .div1 Gitterspalte: 1/3; Rasterreihe: 1/3; 

Sie können diese beiden Regeln auch zu einer einzigen Regel kombinieren, grid-area: rowStart / columnStart / rowEnd / columnEnd.

 .div1 Gitterfläche: 2/2/3/4; 

Wie im obigen Beispiel veranschaulicht, sind Elemente nicht an die HTML-Struktur gebunden. Beachten Sie, wie das erste Element mit dem neu positioniert wird Netzfläche Regel.

Gitterfläche & Gittervorlagenflächen

Sie können jedes untergeordnete Element benennen und diese Namen verwenden, um Ihr Raster zu erstellen. Das ist wirklich mächtig und macht das Layout intuitiver.

Daher definieren wir eine DIV für jedes Element, das wir in unser Grid-System einfügen möchten.

Ich plane einen Header, leftColumn, rightColumn, middleTop, middleBottom und eine Fußzeile.

Also brauche ich in meinem HTML-Code so viele Child-DIVs. Die Klassennamen können alles sein.

Header
LeftCol
RightCol
MidTop
midBottom
Fußzeile

Dann setze ich in meinem CSS das Netzfläche Namen. Diese Namen können alles sein. Sie sollen nicht mit den Klassennamen übereinstimmen.

.Kopfzeile Rasterfläche: Kopfzeile; Hintergrundfarbe: LightSeaGreen;  .leftCol grid-area: leftCol; Hintergrundfarbe: Orange;  .rightCol grid-area: rightCol; Hintergrundfarbe: hellblau;  .midTop grid-area: midTop; Hintergrundfarbe: hellgrau;  .midBottom grid-area: midBottom; Hintergrundfarbe: pink;  .footer grid-area: footer; Hintergrundfarbe: hellgrün; 

Dann in meinem Verpackung DIV, ich benutze die Raster-Vorlagenbereiche Regel, diese Elemente durch Bezugnahme auf ihre definierten Namen auszulegen.

Beachten Sie, dass ich ein 4x4-Gitter habe.

.Wrapper Anzeige: Gitter; Gitter-Template-Spalten: 1fr 4fr 4fr 1fr; Raster-Vorlage-Zeilen: 50px 100px 100px 30px; grid-template-areas: "header header header" "leftCol midTop midTop rightCol" "leftCol midBottom midBottom rightCol" "footer footer footer footer"; Gitterspalt: 5px; 

Wenn ich zum Beispiel möchte, dass die Fußzeile nur zwei Spalten enthält und zentriert wird, dann ersetze ich einfach den ersten und den letzten Auftritt von Fußzeile mit einem Punkt (.) im Raster-Vorlagenbereiche.

.Wrapper Anzeige: Gitter; Gitter-Template-Spalten: 1fr 4fr 4fr 1fr; Raster-Vorlage-Zeilen: 50px 100px 100px 30px; grid-template-areas: "header header header" "leftCol midTop midTop rightCol" "leftCol midBottom midBottom rightCol" ". footer footer."; Gitterspalt: 5px; 

Fazit

CSS Grid hat viele Regeln und ich habe nur die nützlichsten in diesem Tutorial behandelt. Sie können weiterhin in MDN-Web-Docs oder andere Quellen nach einer vollständigen Liste der Rastereigenschaften und -funktionen suchen.