Die CSS-Eigenschaft gap
ist für die CSS-Flexbox- und mehrspaltigen Layout-Engines von Chromium verfügbar.
Lücke im Preisvergleichsportal
gap
ist Ablauf relativ, d. h., er ändert sich dynamisch je nach Richtung des Inhaltsflusses. gap
passt sich z. B. automatisch an die verschiedenen writing-mode
- oder direction
-Werte an, die Sie für Ihre internationalen Nutzer festlegen. Dies entlastet die Komponente und den CSS-Autor erheblich, wenn es um Leerzeichen geht. Weniger weitere Codeskalierung.
Browserkompatibilität
Nutzung
gap
akzeptiert jedes CSS-Attribut length oder percentage als Wert.
.gap-example {
display: grid;
gap: 10px;
gap: 2ch;
gap: 5%;
gap: 1em;
gap: 3vmax;
}
Es kann eine Lücke mit einer Länge übergeben werden, die sowohl für die Zeile als auch für die Spalte verwendet wird.
.grid { display: grid; gap: 10px; }
.grid { display: grid; row-gap: 10px; column-gap: 10px; }
Es können 2 Längen übergeben werden, die für die Zeile und die Spalte verwendet werden.
.grid { display: grid; gap: 10px 5%; }
.grid { display: grid; row-gap: 10px; column-gap: 5%; }
Flexbox gap
Bevor gap
in der Flexbox verwendet wurde, umfassten Strategien negative Ränder, komplexe Selektoren, Pseudoklassenselektoren vom Typ :last
oder :first
oder andere Methoden, um den Bereich eines dynamisch angeordneten und umgebenden Satzes von untergeordneten Elementen zu verwalten.
Vorherige Versuche
Die folgenden Muster wurden bereits verwendet, um lückeähnliche Abstände zu erhalten.
.layout > :not(:last-child) { margin-bottom: 10px; margin-right: 10px; }
.layout > * + * { margin-bottom: 10px; margin-right: 10px; }
Die obigen sind jedoch kein vollständiger Ersatz für gap
und erfordern häufig @media
- oder :lang()
-Anpassungen, um Wrapping-Szenarien, Schreibmodi oder Richtungen zu berücksichtigen.
Ein oder zwei Medienabfragen hinzuzufügen, scheint nicht schlecht, aber sie können sich summieren und zu einer komplizierten Layoutlogik führen.
Der obige Autor sollte eigentlich keines der untergeordneten Elemente berühren.
Der Gegenmittel: Gap
.layout {
display: flex;
gap: 10px;
}
In den ersten beiden Beispielen (ohne Flexbox gap
) werden die untergeordneten Elemente ausgewählt und Abstände von anderen Elementen zugewiesen. Im Beispiel einer Gegenmittellücke ist der Container für den Abstand verantwortlich. Jedes Kind kann sich von der Last entlasten und gleichzeitig die Rechte für den Abstand zentralisieren. Vereinfachung der Einheitlichkeit Darstellungsbereiche neu anordnen, ändern, Elemente entfernen, neue Elemente anhängen usw. und die Abstände einheitlich bleiben. Keine neuen Selektoren, keine neuen Medienabfragen, nur Speicherplatz.
Updates für die Chromium-Entwicklertools
Diese Updates umfassen Änderungen an den Chromium-Entwicklertools. Im Bereich Styles werden jetzt grid-gap
und gap
verarbeitet. 👍
Die Entwicklertools unterstützen sowohl grid-gap
als auch gap
, da gap
im Wesentlichen ein Alias für die vorherigen Syntaxen ist.
Potenzial für neues Layout
Mit der Flexbox gap
ist mehr als nur Komfort möglich. Wir schalten leistungsstarke,
intrinsische Layouts mit perfekten Abständen. Im Video und im folgenden Codebeispiel unten kann Grid nicht das Layout erreichen, das Flexbox kann. Das Raster muss gleich viele Zeilen und
Spalten haben, auch wenn sie prinzipiell zugewiesen sind.
Achten Sie auch darauf, wie dynamisch der Abstand zwischen den Kindern ist, wenn sie sich in die gleiche Richtung umschließen. Medienabfragen können solche Umbrüche nicht erkennen und intelligente Anpassungen vornehmen.
Die Flexbox gap
übernimmt und wird dies für dich bei allen Internationalisierungen erledigen.
Mehrspaltig gap
Neben der Flexbox, die die gap
-Syntax unterstützt, unterstützen mehrspaltige Layouts auch die kürzere gap
-Syntax.
article {
column-width: 40ch;
column-gap: 5ch;
gap: 5ch;
}
Ziemlich cool.