In diesem Lernprogramm erfahren Sie, wie Sie mithilfe von CSS Grid verschiedene Webformulare erstellen. Für jedes Beispiel werden wir zuerst Floats verwenden und dann sehen, wie das gleiche Layout mit CSS Grid erstellt werden kann.
Wenn Sie noch keine Kenntnisse des CSS-Rasters haben, werfen Sie einen Blick auf unsere Einsteigerserie "Das CSS-Rasterlayout-Modul". Lass uns anfangen!
In diesem Layout teilen wir das Formular in zwei Spalten auf, sodass wir links die Beschriftungen und rechts die Eingabefelder anzeigen können.
Ein traditioneller Ansatz für dieses Layout könnte Floats verwenden, um uns unsere Spalten zu geben. Beachten Sie, dass wir keinen Wrapper für das Formularelement haben. Wir werden die Beschriftungen und Eingaben direkt gestalten.
form overflow: versteckt; label float: left; Breite: 200px; Polsterung rechts: 24px; input float: left; Breite: berechnet (100% - 200px); button float: right; Breite: berechnet (100% - 200px);
Sie werden feststellen, dass wir verwenden calc ()
Hier können wir unsere linke Säule auf 200px Breite fixieren, während die rechte Säule flüssig bleibt.
Hier ist das Ergebnis mit einigen zusätzlichen Stilen für die Ästhetik:
Unser Ziel bei der Verwendung von „Grid“ ist es, zwei Spalten zu definieren und jedes Element in der erforderlichen Spalte zu platzieren.
Der erste Schritt ist das Definieren unseres Gitters für das übergeordnete Element bilden
:
form display: grid;
Dann müssen wir dieses Raster mit teilen Raster-Vorlage-Spalten
:
form display: grid; Rastervorlagen-Spalten: 200px 1fr;
Basierend auf dem obigen CSS hat die erste Spalte eine feste Breite von 200px
während der zweite dauert 1fr
(„Ein Bruchteil“) des verbleibenden verfügbaren Platzes.
Nun müssen wir die Platzierung für unsere Labels und Eingaben definieren. Um dies zu tun, werden wir verwenden Rasterspalte
mit spezifischen Werten für die Gitterlinien:
Weitere Informationen zur Funktionsweise von Rasterlinien finden Sie in diesem kurzen Tipp:
Basierend auf diesen Rasterlinien wenden wir die folgenden Regeln für unsere Beschriftungen, Eingaben und die Schaltfläche an:
Beschriftung Gitterspalte: 1/2; Eingabe, Schaltfläche Gitterspalte: 2/3;
Die Beschriftungen befinden sich in der Spalte, die in Zeile 1 beginnt und in Zeile 2 endet. Die Eingaben und die Schaltfläche werden in die Spalte eingefügt, die in Zeile 2 beginnt und in Zeile 3 endet.
Zum Schluss verwenden wir Netzlücke
So fügen Sie zwischen den Zeilen und Spalten eine Rinne mit 16 Pixeln hinzu:
form display: grid; Rastervorlagen-Spalten: 200px 1fr; Gitterlücke: 16px;
In diesem Layout möchten wir Folgendes erreichen:
Es ist durchaus möglich, dieses Layout mit Schwimmern zu erstellen. Wir müssen jedoch a einstellen min-Höhe
für die linke Spalte, sonst nimmt sie nicht die volle Höhe an. Es gibt andere "traditionelle" Ansätze für dieses Problem, aber keiner ist besonders hübsch.
Zusammenfassend müssen wir bei Schwimmern Folgendes tun:
min-Höhe
in der linken Spalte.Überlauf versteckt;
um die Umschlaghöhe zu erhalten.Textbereich
und senden Sie die Schaltfläche und lassen Sie sie die volle Breite ausfüllen.Das ist ziemlich viel Arbeit, richtig?
Ein besserer Ansatz wäre, dies entweder mit Flexbox oder Grid zu lösen. In diesem speziellen Fall würde ich lieber Grid verwenden, da wir Elemente horizontal und vertikal anordnen.
Beginnen wir damit, ein Raster auf unserem Wrapper zu deklarieren und es in zwei Spalten zu unterteilen.
.Wrapper Anzeige: Gitter; Rastervorlagen-Spalten: 1fr 2fr;
Unser Formelement ebenfalls muss ein Gitter deklariert werden:
form display: grid; Rastervorlagen-Spalten: 1fr 1fr; Gitterlücke: 20px;
Nachdem Sie die obigen Regeln angewendet haben, erhalten Sie Folgendes:
Die letzten beiden Elemente müssen die volle Breite ausfüllen, indem wir sie von der Rasterlinie 1 bis zur Rasterlinie 3 strecken.
.volle Breite Gitterspalte: 1/3;
Zeit für unser letztes Formularlayout. In diesem Beispiel haben wir eine Eingabe für Benutzer eingefügt, um ihr Profilfoto hochzuladen. Es sollte oben rechts platziert werden.
Wir werden dies mit dem folgenden Markup erstellen:
Kurz auf einen traditionellen Ansatz eingehen, können wir unser Layout mit diesen Schritten erreichen:
Position: relativ;
zum Formularelement.Lassen Sie uns nicht zu sehr auf den traditionellen Ansatz eingehen. Mit Raster teilen wir das Formular wie folgt in zwei Spalten:
Die erste Spalte nimmt den doppelten horizontalen Platz der zweiten Spalte ein, was wir erreichen werden fr
Einheiten:
form display: grid; Rastervorlagen-Spalten: 2fr 1fr; Gitterlücke: 20px;
Nachdem wir das Gitter erstellt haben, müssen wir die Formularelemente zwischen der Rasterlinie 1 und der Rasterlinie 2 platzieren:
form p Gitterspalte: 1/2;
Der nächste Schritt ist das Platzieren der Eingabedatei in der zweiten Spalte. Um dies zu tun, werden wir es zwischen Rasterlinie 2 und Rasterlinie 3 platzieren. Wenn Sie sich vertikal bewegen, werden Zeilen von Rasterlinie 1 bis Rasterlinie 2 überspannt.
.Eingabedatei-Wrapper grid-column: 2/3; Rasterreihe: 1/2;
Gut gemacht! Wir haben verschiedene Beispiele für die Verwendung von CSS-Grids beim Erstellen von Webformularen behandelt. Wie Sie bemerkt haben, haben wir viel Zeit und Mühe gespart, indem Sie einige Zeilen Code geschrieben haben, anstatt traditionelle Layouttechniken zu verwenden. Dank CSS können Sie alle oben genannten Beispiele ab heute verwenden @supports
die uns helfen, eine bestimmte Funktion als Erweiterung zu nutzen.
Haben Sie Vorschläge zur Verbesserung dieser Layouts? Lass es mich in den Kommentaren wissen!