<span><span>.container</span> { </span> <span>display: grid; </span> <span>gap: 10px; </span><span>} </span>
Siehe die Grundlagen des Stifts
cs
Wir haben jetzt ein flexibles und reaktionsschnelles Layout ohne hackige Schwimmer, Überläufe und andere Albträume der Vergangenheit. Wenn wir unseren Gitterartikeln Inhalte hinzufügen, erweitern sie, um diesen Inhalt zu enthalten, und die Side-by-Side-Spalten haben immer die gleiche Höhe. (Für diejenigen, die mit CSS in den Noughties arbeiten, war es ein Albtraum, Säulen mit gleichem hohen Säulen zu erreichen!)
nützliche Dinge, die Sie über nummerierte Gitterlinien wissen könnenWenn Sie das obige Bild erneut ansehen, werden Sie feststellen, dass die vertikalen Linien am unteren Rand auch mit negativen Zahlen genannt werden. Jede Gitterlinie hat eine positive und negative Zahl. Dies hat viele Verwendungszwecke, beispielsweise wenn es viele Gitterlinien gibt und wir nicht unbedingt wissen, wie viele es geben wird. Wir könnten unser
Grid hat auch ein Spannwechsel, mit dem wir ein Element anweisen können, eine Anzahl von Zeilen oder Spalten zu überspannen. Eine weitere Option für unser -Layout wäre das Schreiben von Grid-Säulen: 1 / Span 4. Dies fordert das Element an, an der ersten Rasterlinie zu beginnen und über alle unsere vier Spalten zu spannen.
Probieren Sie diese Variationen im obigen Stift aus.
Weiteres Lesen:
- Erfahren Sie mehr über Gitterlinien.
- Die Richtung, in der Gitterlinien nummeriert sind, wird durch den Schreibmodus unseres Layouts beeinflusst.
- Erfahren Sie mehr über die Gittersäule.
- Lesen Sie das Schlüsselwort des Span in der Netzspezifikation.
Gitterelemente mit den benannten Grid -Linien
platzierenWir haben gesehen, wie Elemente im Netz mit nummerierten Rasterleitungen organisiert werden. Wir können aber auch einige oder alle unsere Gitterlinien Namen geben und stattdessen auf diese verweisen - was etwas intuitiver sein kann und uns vor dem Zählen von Gitterlinien retten kann.
Aktualisieren wir unser Layout, um einige benannte Zeilen einzuschließen:
<span><span>.container</span> { </span> <span>display: grid; </span><span>} </span>
Im obigen Code haben wir nur drei vertikale Netzzeilen benannt. Die Namen gehen in quadratischen Klammern neben unseren Spaltenbreiten und repräsentieren unsere Spaltenzeilen.
Wir können jetzt einige unserer Elemente auf das Netz platzieren wie so:
<span><span><span><div</span> class<span>="container"</span>></span> </span> <span><span><span><header</span>></span>header<span><span></header</span>></span> </span> <span><span><span><aside</span>></span>aside<span><span></aside</span>></span> </span> <span><span><span><main</span>></span>main<span><span></main</span>></span> </span> <span><span><span><footer</span>></span>footer<span><span></footer</span>></span> </span><span><span><span></div</span>></span> </span>
Wir können diesen Code in der Demo unten in der Praxis sehen.
Siehe die Grundlagen des Stifts
cs
Weiteres Lesen:
Erfahren Sie mehr über benannte Grid -Linien.
- Lesen Sie über benannte Zeilen in der Netzspezifikation.
- Gitterelemente mit den benannten Grid -Bereichen
Eine der interessantesten und „designerfreundlichsten“ Merkmale des Gitterlayout Legen Sie unsere Netzwerke aus. Es funktioniert so:
Verwenden von Grid-Template-Areas haben wir ein einfaches Textgitter erstellt, in dem angegeben ist, wie Elemente angelegt werden sollen. Jetzt müssen wir diese Bereichsnamen nur auf unsere Elemente anwenden:
<span><span>.container</span> { </span> <span>display: grid; </span> <span>gap: 10px; </span><span>} </span>
Also, der
<span><span>.container</span> { </span> <span>display: grid; </span> <span>gap: 10px; </span> <span>grid-template-columns: 1fr 1fr 1fr 1fr; </span><span>} </span>
Wir können dies in Aktion im Stift unten sehen.
Siehe die Grundlagen des Stifts
cs
Verwenden von Zeilennummern und benannten Linien mit Gitterbereichen
Es ist erwähnenswert, dass wir auch Zeilennummern und/oder benannte Linien verwenden können, um die Netzbereiche zu definieren. Anstatt beispielsweise die Eigenschaft für Gitter-Template zu verwenden, könnten wir einfach so etwas tun:
<span><span>.container</span> { </span> <span>display: grid; </span><span>} </span>
Das Muster ist Zeilenstart / Spaltenstart / Zeilen-End / Spaltenende. Sie können eine Demo davon auf CodePen überprüfen. Persönlich fällt es mir sehr schwer, sich an dieses Muster von Zeilen und Säulen zu erinnern, aber das Tolle an Grid ist, dass es viele Möglichkeiten gibt, dasselbe zu tun.
Ändern des Layouts von Gitterartikeln
In den alten Tagen, wenn wir uns irgendwann entschieden haben, das Layout unserer Seitenelemente zu ändern, hätte dies wahrscheinlich zu viel Code -Refactoring geführt. Was ist beispielsweise, wenn wir das Element Wir haben gerade eine Gitterzelle von Fußzeile entfernt und sie beiseite zugewiesen, was zu dem führt, was wir im Stift unten sehen. Siehe die Grundlagen des Stifts
Wir könnten sogar entscheiden, dass wir irgendwo eine leere Zelle wollen. Wir tun dies, indem wir nur ein oder mehrere Perioden verwenden, wie SO:
Weiteres Lesen:
Wir haben jetzt nur eine einzige Spalte angegeben und die Reihenfolge der Elemente in dieser Spalte festgelegt. CSS Grid: Verwenden von Medienabfragen von SitePoint (@sitepoint)
Drücken Sie die 0,5 -fach -Taste unten im obigen Stift, um zu sehen, wie das Layout reagiert (oder den Stift auf Codepen anzeigen und das Ansichtsfenster vergrößern und einschränken). Wir sind jetzt in einem guten Punkt, um zu sehen, wie einfach es ist, die Anzeigereihenfolge der Elemente im Netzlayout zu ändern. Im obigen Beispiel lautet unsere Quellbestellung Wir können Gitterelemente neu ordnen, wenn sie nicht benannte Elemente verwenden. Standardmäßig werden Gitterelemente gemäß ihrer HTML -Quellordnung platziert. Sie haben auch eine Standardreihenfolge von 0. Wir können diese Auftragseigenschaft verwenden, um die visuelle Anordnung von Elementen zu ändern. Je niedriger der Bestellwert, desto früher erscheint ein Element. Sogar negative Ganzzahlen können verwendet werden. Wenn unser Um unsere oben gezeigten Elemente zu bestellen, konnten wir den Bestellwert von Ein Wort der Vorsicht: Nachgeordnete Elemente können ein Albtraum für die Zugänglichkeit sein, wobei der Fokus unvorhersehbar auf dem Bildschirm springt. Verwenden Sie es also sparsam. Weiteres Lesen: Wir haben oben gesehen, dass wir unser Layout auf verschiedene Bildschirmgrößen ansprechen können. Erstens kann das Layout nach Bedarf wachsen und schrumpfen, indem sie die Spaltenbreiten auf flexible Einheiten wie FR einstellen. Zweitens können wir Medienabfragen verwenden, um das Layout an bestimmten Haltepunkten neu zu organisieren. Grid Layout verfügt über Tools, mit denen Layout -Reflow ohne die Verwendung von Medienabfragen. Mit dem Layout, mit dem wir oben gearbeitet haben, können wir dies jedoch nicht erreichen. Es funktioniert nur für einfachere Layouts, bei denen jede Spalte die gleiche Breite teilt. Betrachten Sie die folgenden HTML: Lassen Sie uns diese Divs nebeneinander auf breiten Bildschirmen setzen und auf kleinen Bildschirmen stapeln: Sie können das Ergebnis im unten stehenden Stift sehen. Siehe das Stift (Drücken Sie erneut die 0,5 -fach -Taste unten im obigen Stift, um zu sehen, wie das Layout reagiert.) Dieser Code ist etwas erweiterter, und wir erklären ihn ausführlich in der Verwendung der Funktion CSS Grid Repect (). Der Hauptzweck, es hier zu zeigen, besteht darin, ein Gefühl dafür zu vermitteln, was mit Gitterlayout möglich ist. Weiteres Lesen: Sobald wir ein Gitterlayout erstellt haben, können wir mehr als nur jedes Netzelement in seinem eigenen Gitterbereich zuweisen. Wir können Rasterelemente leicht einstellen, um dieselben Netzbereiche teilweise oder vollständig zu teilen. Auf diese Weise können wir schöne, kreative Layouts erstellen - mit überlappenden Elementen und ohne schwierigen Code. Erstellen wir ein einfaches Netz, das ein Bild und einen Text enthält, der das Bild teilweise abdeckt. Hier ist die HTML: Jetzt weisen wir einige Zeilen und Spalten zu, die teilweise zwischen dem Div und dem Bild geteilt werden: Das Ergebnis ist in der folgenden Codepen -Demo gezeigt. Siehe die Grundlagen des Stifts
Das Div erscheint über dem Bild, einfach weil es in der Quellreihenfolge nach dem Bild kommt. Wir können das Element ändern, das über den anderen erscheint, indem wir Z-Index anwenden. Versuchen Sie beispielsweise, einen Z-Index von 2 auf das Bild im obigen Stift festzulegen. Es wird nun einen Teil der Div. Weiteres Lesen:
Gitter gegen Flexbox
Eine ewige Frage ist, ob wir Raster oder Flexbox verwenden sollten. Es ist wahr, dass es einige Überlappungen zwischen den beiden Layout -Tools gibt. Oft lohnt es sich, ein paar Tests durchzuführen, um zu sehen, welche in jedem bestimmten Szenario das bessere Toolkit aufweist.
Flexbox wurde hauptsächlich zum Auslegen von Elementen in eine einzelne Richtung entwickelt (auch wenn diese Elemente über Linien wickeln). Als wir diesen Artikel im Jahr 2016 zum ersten Mal veröffentlichten, war das Netz für Browser ziemlich neu und die Unterstützung war nicht universell. Heutzutage unterstützen alle großen Browser das Netz. Es wird immer noch einige ältere Browser geben, die es nicht unterstützen, aber in vielen Fällen zeigen diese Browser den Inhalt immer noch gut genug an. Ein schöner Catch-All-Ansatz besteht darin, mit einem einspaltigen Layout für mobile Geräte zu beginnen, die als Fallback für Browser dienen können, die kein Gitterlayout unterstützen. Die Netzstile können über Medienabfragen für Browser hinzugefügt werden, die sie unterstützen - die auf breiteren Bildschirmen angezeigt werden. Sie können den neuesten Browser -Support für das Netz auf Caniuse überprüfen. Schließlich enden wir mit einigen weiteren Lernressourcen. Viele tolle Leute haben Tutorials, Videos, Bücher und mehr über das Netz bereitgestellt. Hier sind nur einige: Wie definiere ich Zeilen und Spalten in einem CSS-Gitter? -Rows, Grid-Template-Säulen oder Verwenden der Kurzform-Eigenschaft-Gitter-Template. Spaltenbreiten und Zeilenhöhen durch Verwendung verschiedener Werte in Ihrer Gitter-Template-Definition, z.<span><span><span><div</span> class<span>="container"</span>></span>
</span> <span><span><span><header</span>></span>header<span><span></header</span>></span>
</span> <span><span><span><aside</span>></span>aside<span><span></aside</span>></span>
</span> <span><span><span><main</span>></span>main<span><span></main</span>></span>
</span> <span><span><span><footer</span>></span>footer<span><span></footer</span>></span>
</span><span><span><span></div</span>></span>
</span>
cs
<span><span>.container</span> {
</span> <span>display: grid;
</span> <span>gap: 10px;
</span><span>}
</span>
Wir möchten oft ein anderes Layout auf kleinen Bildschirmen - z. B. das Stapeln unserer Netzelemente in einer einzigen Spalte. Eine einfache Möglichkeit, dies zu tun
<span><span>.container</span> {
</span> <span>display: grid;
</span> <span>gap: 10px;
</span> <span>grid-template-columns: 1fr 1fr 1fr 1fr;
</span><span>}
</span>
Ändern der Anzeigereihenfolge der Netzelemente
reaktionsschnelles Gitterlayout ohne Medienabfragen
<span><span>.container</span> {
</span> <span>display: grid;
</span><span>}
</span>
<span><span><span><div</span> class<span>="container"</span>></span>
</span> <span><span><span><header</span>></span>header<span><span></header</span>></span>
</span> <span><span><span><aside</span>></span>aside<span><span></aside</span>></span>
</span> <span><span><span><main</span>></span>main<span><span></main</span>></span>
</span> <span><span><span><footer</span>></span>footer<span><span></footer</span>></span>
</span><span><span><span></div</span>></span>
</span>
CSS Grid Basics: Responsive Grid ohne Medienabfragen von SitePoint (@sinepoint)
auf CodePen.
überlappende Elemente in einem Raster
<span><span>.container</span> {
</span> <span>display: grid;
</span><span>}
</span>
<span><span><span><div</span> class<span>="container"</span>></span>
</span> <span><span><span><header</span>></span>header<span><span></header</span>></span>
</span> <span><span><span><aside</span>></span>aside<span><span></aside</span>></span>
</span> <span><span><span><main</span>></span>main<span><span></main</span>></span>
</span> <span><span><span><footer</span>></span>footer<span><span></footer</span>></span>
</span><span><span><span></div</span>></span>
</span>
cs
Erfahren Sie mehr über die Z-Index-Eigenschaft.
Dieser Artikel ist nur als grundlegende Einführung in das CSS -Gitterlayout gedacht. Die Hoffnung ist, dass es ein Sprungbrett für weiteres Lernen und Entdeckungen bietet. Und es gibt eine riesige -Mübe, die Sie über das Netz lernen können.
In der Regel denken Sie jedoch daran: Grid ist zum Auslegen von Elementen in zwei Richtungen ausgelegt, damit sie sowohl horizontal als auch vertikal ausgerichtet sind.
Weitere Informationen zu Gitter und Flexbox finden Sie in Flexbox oder CSS-Raster? Wie man Layoutentscheidungen trifft, die sinnvoll sind.
Browserunterstützung für Gitter
Lernressourcen für Gitter
lernen
FAQs über CSS -Gitterlayout
Was ist CSS-Gitterlayout? Es bietet eine flexiblere und effizientere Möglichkeit, Elemente in einem Raster zu entwerfen und zu positionieren. Netz; Eigenschaft in Ihrem CSS -Code. Dadurch wird der ausgewählte Behälter zu einem Rasterbehälter. Der Container wird mithilfe des Displays: Grid definiert; Eigenschaft und die Elemente sind die Elemente im Behälter.
Kann ich Gitter in Gitter nisten? Kann ich die Netze an verschiedene Bildschirmgrößen anpassen lassen? Sie können Medienabfragen, Prozentsätze oder relative Einheiten verwenden, um Ihr Netzlayout an verschiedene Bildschirmgrößen und -geräte anzupassen.