column-gap

Baseline Widely available

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

Die column-gap CSS Eigenschaft legt die Größe der Lücke (Gutter) zwischen den Spalten eines Elements fest.

Ursprünglich Teil des Multi-Column Layout, wurde die Definition von column-gap erweitert, um mehrere Layout-Methoden einzuschließen. Nun in der CSS-Kasten-Ausrichtung spezifiziert, kann es in Multi-Column-, Flexbox- und Grid-Layouts verwendet werden.

Frühere Versionen der Spezifikation nannten diese Eigenschaft grid-column-gap, und um die Kompatibilität mit älteren Websites zu gewährleisten, akzeptieren Browser weiterhin grid-column-gap als Alias für column-gap.

Probieren Sie es aus

column-gap: 0;
column-gap: 10%;
column-gap: 1em;
column-gap: 20px;
<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;
  width: 200px;
}

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

Syntax

css
/* Keyword value */
column-gap: normal;

/* <length> values */
column-gap: 3px;
column-gap: 2.5em;

/* <percentage> value */
column-gap: 3%;

/* Global values */
column-gap: inherit;
column-gap: initial;
column-gap: revert;
column-gap: revert-layer;
column-gap: unset;

Die column-gap Eigenschaft wird als einer der unten aufgeführten Werte angegeben.

Werte

normal

Der Standardabstand des Browsers wird zwischen den Spalten verwendet. Für das Multi-Column Layout ist dies als 1em spezifiziert. Für alle anderen Layout-Typen ist es 0.

<length>

Die Größe der Lücke zwischen den Spalten, definiert als ein <length>. Der Wert der <length> Eigenschaft muss nicht negativ sein.

<percentage>

Die Größe der Lücke zwischen den Spalten, definiert als ein <percentage>. Der Wert der <percentage> Eigenschaft muss nicht negativ sein.

Formale Definition

Anfangswertnormal
Anwendbar aufmulti-column elements, flex containers, grid containers
VererbtNein
Prozentwertebeziehen sich auf die entsprechende Dimension des Inhaltsbereichs
Berechneter Wertas specified, with <length>s made absolute, and normal computing to zero except on multi-column elements
AnimationstypLängenangabe, Prozentsatz oder calc();

Formale Syntax

column-gap = 
normal |
<length-percentage [0,∞]>

<length-percentage> =
<length> |
<percentage>

Beispiele

Flex Layout

In diesem Beispiel enthält ein Flex-Container sechs Flex-Elemente mit zwei verschiedenen Breiten (200px und 300px), die Flex-Elemente erzeugen, die nicht als Gitter angeordnet sind. Die column-gap Eigenschaft wird verwendet, um horizontalen Platz zwischen den angrenzenden Flex-Elementen hinzuzufügen.

HTML

html
<div class="flexbox">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CSS

Um einen Flex-Container zu erstellen, setzen wir den Wert der display Eigenschaft auf flex. Wir verwenden dann die flex-flow Kurzschreibweise, um die flex-direction auf Reihe (Standard) und flex-wrap auf wrap zu setzen, wodurch die Flex-Elemente bei Bedarf in neue Zeilen fließen können. Standardmäßig dehnen sich Flex-Elemente aus, um so hoch wie ihr Container zu sein. Durch das Festlegen einer height, werden selbst die leeren Flex-Elemente 100px hoch sein.

Um die column-gap Eigenschaft besser zu demonstrieren, haben die Flex-Elemente in diesem Beispiel zwei verschiedene Breitenwerte. Die Breite der Flex-Elemente wird innerhalb der <div> Flex-Elemente festgelegt. Wir verwenden die flex-basis Komponente der flex Kurzschreibweise, um alle Flex-Elemente 200px breit zu machen. Wir zielen dann auf jedes dritte Flex-Element ab, indem wir den :nth-of-type(3n) Selektor verwenden, um sie auf 300px zu verbreitern.

Der column-gap Wert wird im Flex-Container auf 20px gesetzt, um einen 20px Abstand zwischen den angrenzenden Flex-Elementen in jeder Zeile zu erzeugen.

css
.flexbox {
  display: flex;
  flex-flow: row wrap;
  height: 100px;
  column-gap: 20px;
}

.flexbox > div {
  border: 1px solid green;
  background-color: lime;
  flex: 200px;
}
div:nth-of-type(3n) {
  flex: 300px;
}

Ergebnis

Hinweis: Während es horizontalen Raum zwischen angrenzenden Flex-Elementen in jeder Flex-Zeile gibt, gibt es keinen Raum zwischen den Zeilen. Um vertikalen Raum zwischen Flex-Zeilen festzulegen, können Sie einen nicht-Nullwert für die row-gap Eigenschaft angeben. Die gap Kurzschreibweise ist auch verfügbar, um sowohl den row-gap als auch den column-gap in einer Deklaration festzulegen, in dieser Reihenfolge.

Grid Layout

HTML

html
<div id="grid">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CSS

css
#grid {
  display: grid;
  height: 100px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px;
  column-gap: 20px;
}

#grid > div {
  border: 1px solid green;
  background-color: lime;
}

Ergebnis

Multi-Column Layout

HTML

html
<p class="content-box">
  This is some multi-column text with a 40px column gap created with the CSS
  `column-gap` property. Don't you think that's fun and exciting? I sure do!
</p>

CSS

css
.content-box {
  column-count: 3;
  column-gap: 40px;
}

Ergebnis

Spezifikationen

Specification
CSS Box Alignment Module Level 3
# column-row-gap
CSS Grid Layout Module Level 2
# gutters
CSS Multi-column Layout Module Level 1
# column-gap

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch