Dieser Artikel stellt hauptsächlich den Beispielcode des CSS-Rasterlayouts vor und hofft, jedem dabei zu helfen, mehr CSS-Kenntnisse zu erlernen.
Browserkompatibilität
Das CSS-Rasterlayout kann ab Safari 10.1, Firefox 52, Chrome 60 und Edge 15 angezeigt werden. Erhalten Sie jetzt Unterstützung .
Rasterlayout
Grundelemente der Seite:
<p class="wrapper"> <p class="box box1">One</p> <p class="box box2">Two</p> <p class="box box3">Three</p> <p class="box box4">Four</p> <p class="box box5">Five</p> </p>
Stil:
.wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .box { border: 2px solid #FDC180; }
Erstellen Sie einen Rastercontainer, indem Sie display:grid oder display:inline-grid auf dem Element deklarieren:
.wrapper { display: grid; }
Der folgende Effekt:
Definieren Sie die Zeilen und Spalten im Raster
Pass Die Eigenschaften „grid-template-columns“ und „grid-template-rows“ definieren die Zeilen und Spalten im Raster. Diese Eigenschaften definieren die Umlaufbahn des Gitters. Eine Rasterspur ist der Abstand zwischen zwei beliebigen Linien im Raster.
Das folgende Raster enthält drei 200 Pixel breite Spaltenspuren:
.wrapper { display: grid; grid-template-columns: 200px 200px 200px; }
fr-Einheit
Die neue fr-Einheit stellt einen gleichen Teil des verfügbaren Platzes im Rastercontainer dar. Die nächste Rasterdefinition erstellt drei Spuren gleicher Breite, die mit dem verfügbaren Platz wachsen und schrumpfen.
.wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
kann auch mit Pixeleinheiten gemischt werden:
.wrapper { display: grid; grid-template-columns: 500px 1fr 2fr; }
Verwenden Sie „repeat()“ in der Titelliste
Die Syntax von „repeat“ lautet wie folgt:
repeat(number of columns/rows, the column width we want);
Große Raster mit mehreren Titeln können das Tag „repeat()“ verwenden, um einen Teil oder die gesamte Titelliste zu wiederholen. Die folgende Rasterdefinition:
.wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
kann wie folgt geschrieben werden:
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); }
Repeat-Anweisung kann verwendet werden, um einen Teil der Titelliste zu wiederholen. Im folgenden Beispiel habe ich ein Raster erstellt, das mit einer 20-Pixel-Spur begann, dann 6 1fr-Spuren wiederholte und schließlich eine 20-Pixel-Spur hinzufügte.
.wrapper { display: grid; grid-template-columns: 20px repeat(6, 1fr) 20px; }
Die Repeat-Anweisung kann in einer Titelliste übergeben werden, sodass Sie damit eine sich wiederholende Titelliste im Mehrspurmodus erstellen können. Im nächsten Beispiel verfügt das Raster über insgesamt 10 Spuren, wobei auf eine 1-Fr-Spur eine 2-Fr-Spur folgt und dieses Muster fünfmal wiederholt wird.
.wrapper { display: grid; grid-template-columns: repeat(5, 1fr 2fr); }
Raster-Auto-Zeilen und Raster-Auto-Spalten
Erstellen Sie das obige Rasterbeispiel. Wir haben unsere eigene Spaltenspur mithilfe der Eigenschaft „grid-template-columns“ definiert, das Raster jedoch Zeilen mit dem erforderlichen Inhalt erstellen lassen, die im impliziten Raster erstellt würden. Ein explizites Raster enthält die Zeilen und Spalten, die Sie in den Eigenschaften „grid-template-columns“ und „grid-template-rows“ definieren. Wenn Sie etwas außerhalb der Rasterdefinition platzieren oder die Menge des Inhalts mehr Rasterspuren erfordert, erstellt das Raster Zeilen und Spalten im impliziten Raster. Standardmäßig wird die Größe dieser Spuren automatisch angepasst, sodass sich ihre Größe je nach dem darin enthaltenen Inhalt ändert.
Sie können die Eigenschaften „grid-auto-rows“ und „grid-auto-columns“ verwenden, um eine Spur in der Größe in einem impliziten Raster zu definieren.
Im folgenden Beispiel verwenden wir die Eigenschaft „grid-auto-rows“, um sicherzustellen, dass die im impliziten Raster erstellten Spuren 200 Pixel hoch sind.
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 200px; }
minmax()
bevor Sie ein explizites Wann festlegen Beim Erstellen eines Rasters oder beim Definieren der Größe automatisch erstellter Zeilen und Spalten möchten wir dem Raster möglicherweise eine Mindestgröße zuweisen, aber sicherstellen, dass es vergrößert werden kann, um den hinzugefügten Inhalt aufzunehmen. Ich möchte zum Beispiel, dass meine Zeilenhöhe nie unter 100 Pixel schrumpft, aber wenn mein Inhalt auf 300 Pixel hoch gedehnt wird, möchte ich, dass meine Zeilenhöhe auch auf diese Höhe gedehnt wird.
Das Raster verwendet die Funktion minmax(), um dieses Problem zu lösen. Im nächsten Beispiel verwende ich minmax() als Wert für Grid-Auto-Rows. Automatisch erstellte Zeilenhöhen betragen mindestens 100 Pixel und maximal „Auto“. Die Verwendung von „Auto“ bedeutet, dass sich die Größe der Reihe automatisch entsprechend der Größe des Inhalts ändert: Je nach der höchsten Einheit in der Reihe wird der Raum erweitert, um diese Einheit unterzubringen.
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(100px, auto); }
<p class="wrapper"> <p class="box">One</p> <p class="box">Two <p>I have some more content in.</p> <p>This makes me taller than 100 pixels.</p> </p> <p class="box">Three</p> <p class="box">Four</p> <p class="box">Five</p> </p>
Platzieren Sie das Raster über die Gleise hinweg
hat vier vertikale Gitterlinien und drei horizontale Gitterlinien wie folgt:
使用了grid-column-start, grid-column-end, grid-row-start 和 grid-row-end 属性,把前两个元素放到了我们的三列网格中。从左至右,第一个元素从列线1开始,延伸至列线4,也就是我们这个例子中最右边的列线。并从行线1延伸到行线3,占据了两个行轨道。
第二个元素从列线1开始,延伸了一个轨道。因为这是默认行为,所以我不用指定结束线。并且它从行线3到行线5,跨越了两个行轨道。剩下的元素会把自己安放到网格空余的空间中。
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; }
网格间距
在两个网格单元之间的 网格横向间距 或 网格纵向间距可使用 grid-column-gap 和 grid-row-gap 属性来创建,或者直接使用两个合并的缩写形式 grid-gap。在下面的例子中,我会创建一个横向间距为10px、纵向间距为1em的网格元素。
嵌套网格
一个网格项目可以也成为一个网格容器。在接下来的例子中我事先有了一个3列的网格元素,并有两个跨轨道的网格。在这个例子中,第一个网格项目含有几个子级项目。当这些项目不是网格容器的直接子级元素时,它们不会参与到网格布局中,并显示为正常的文档流。
html:
<p class="wrapper"> <p class="box box1"> <p class="nested">a</p> <p class="nested">b</p> <p class="nested">c</p> </p> <p class="box box2">Two</p> <p class="box box3">Three</p> <p class="box box4">Four</p> <p class="box box5">Five</p> </p>
css:
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); } .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } .box { border: 2px solid #FDC180; background: #FFD7A4; padding: 10px; color: #FB2E10; } .nested { border: 2px solid #FFF1A2; background: #FFFAD9; }
如果我把 box1 设置成 display: grid 我可以给它定义轨道然后它也会变成一个网格元素,它的子级元素也会排列在这个新网格元素中。
.box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; display: grid; grid-template-columns: repeat(3, 1fr); }
以上内容就是CSS网格布局的示例代码,希望能帮助到大家。
相关推荐:
详解jQuery移动页面开发中的ui-grid网格布局使用_jquery
Das obige ist der detaillierte Inhalt vonBeispielcode für das CSS-Rasterlayout. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Das IndieWeb ist eine Sache! Sie haben eine Konferenz und alles bekommen. Der New Yorker schreibt sogar darüber:

Ich mag den Beitrag "The Designer's Growth Model" von Dennis Hambeuker sehr. Dennis hat gerade dieses Modell erfunden, aber es basiert auf einigen vorhandenen Ideen und alles

Ich unterhielt mich nur mit Dave und er erzählte mir von Haunted. Es ist Haken, aber für native Webkomponenten! Ziemlich cool. Ich denke die Existenz solcher Sachen

In den Nachrichten dieser Woche hilft Wikipedia dabei, drei langsame Klick -Handler zu identifizieren, Google Earth kommt ins Web, SVG -Eigenschaften in CSS erhalten mehr Unterstützung und was im Falle von Zombie -Cookies zu tun ist.

Der Trick in diesem Artikel ist immer noch ziemlich ordentlich und klug, aber es gibt eine jetzt standardisierte Möglichkeit, dies zu tun, was wahrscheinlich die beste Wahl ist.

Es gibt eine Menge Bibliotheken, die Ihnen helfen möchten, Dinge im Internet zu animieren. Diese sind nicht wirklich Bibliotheken, die Ihnen bei der Syntax oder der

In diesem Artikel werden wir uns die Struktur innerhalb von Elementen, Browser -Inkonsistenzen, warum sie in einem bestimmten Browser auf eine bestimmte Art und Weise aussehen, und wie wir uns in einem bestimmten Browser aussehen, und wie

Wollten Sie schon immer sicherstellen, dass außerhalb der Grenzbox des Elternteils nichts von einem (Pseudo) Element angezeigt wird? Falls Sie Probleme haben, sich vorzustellen, was


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung