grid-auto-flow

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.

Die grid-auto-flow CSS Eigenschaft steuert, wie der Auto-Platzierungsalgorithmus funktioniert und gibt an, wie automatisch platzierte Elemente in das Raster eingefügt werden.

Probieren Sie es aus

grid-auto-flow: row;
grid-auto-flow: column;
grid-auto-flow: row dense;
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="transition-all" id="example-element">
      <div>One</div>
      <div>Two</div>
      <div>Three</div>
      <div>Four</div>
      <div>Five</div>
    </div>
  </div>
</section>
#example-element {
  border: 1px solid #c5c5c5;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: repeat(3, minmax(40px, auto));
  grid-gap: 10px;
  width: 220px;
}

#example-element > div {
  background-color: rgba(0, 0, 255, 0.2);
  border: 3px solid blue;
}

#example-element > div:nth-child(1) {
  grid-column: auto / span 2;
}

#example-element > div:nth-child(2) {
  grid-column: auto / span 2;
}

Hinweis: Die Eigenschaft masonry-auto-flow wurde zugunsten von grid-auto-flow aus dem CSS Masonry Layout entfernt. Details finden Sie unter csswg-drafts #10231.

Syntax

css
/* Keyword values */
grid-auto-flow: row;
grid-auto-flow: column;
grid-auto-flow: dense;
grid-auto-flow: row dense;
grid-auto-flow: column dense;

/* Global values */
grid-auto-flow: inherit;
grid-auto-flow: initial;
grid-auto-flow: revert;
grid-auto-flow: revert-layer;
grid-auto-flow: unset;

Diese Eigenschaft kann in zwei Formen vorliegen:

  • Ein einzelnes Schlüsselwort: eines von row, column oder dense.
  • Zwei Schlüsselwörter: row dense oder column dense.

Werte

row

Elemente werden platziert, indem jede Zeile der Reihe nach gefüllt wird, wobei neue Zeilen bei Bedarf hinzugefügt werden. Wenn weder row noch column angegeben ist, wird row angenommen.

column

Elemente werden platziert, indem jede Spalte der Reihe nach gefüllt wird, wobei neue Spalten bei Bedarf hinzugefügt werden.

dense

Der "dichte" Verpackungsalgorithmus versucht, Lücken früher im Raster zu füllen, wenn später kleinere Elemente verfügbar werden. Dies kann dazu führen, dass Elemente außer der Reihenfolge erscheinen, wenn dadurch Lücken gefüllt werden, die von größeren Elementen hinterlassen wurden.

Wird dense weggelassen, wird ein "spärlicher" Algorithmus verwendet, bei dem der Platzierungsalgorithmus beim Platzieren von Elementen im Raster nur "vorwärts" geht und niemals zurückgeht, um Lücken zu füllen. Dies stellt sicher, dass alle automatisch platzierten Elemente "in der Reihenfolge" erscheinen, auch wenn dadurch Lücken entstehen, die von späteren Elementen hätten ausgefüllt werden können.

Formale Definition

Anfangswertrow
Anwendbar aufGridcontainer
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

grid-auto-flow = 
[ row | column ] ||
dense

Beispiele

Automatische Rasterplatzierung festlegen

HTML

html
<div id="grid">
  <div id="item1"></div>
  <div id="item2"></div>
  <div id="item3"></div>
  <div id="item4"></div>
  <div id="item5"></div>
</div>
<select id="direction">
  <option value="column">column</option>
  <option value="row">row</option>
</select>
<input id="dense" type="checkbox" />
<label for="dense">dense</label>

CSS

css
#grid {
  height: 200px;
  width: 200px;
  display: grid;
  gap: 10px;
  grid-template: repeat(4, 1fr) / repeat(2, 1fr);
  grid-auto-flow: column; /* or 'row', 'row dense', 'column dense' */
}

#item1 {
  background-color: lime;
  grid-row-start: 3;
}

#item2 {
  background-color: yellow;
}

#item3 {
  background-color: blue;
}

#item4 {
  grid-column-start: 2;
  background-color: red;
}

#item5 {
  background-color: aqua;
}

Ergebnis

Spezifikationen

Specification
CSS Grid Layout Module Level 2
# grid-auto-flow-property

Browser-Kompatibilität

Siehe auch