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
/* 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
Anfangswert | normal |
---|---|
Anwendbar auf | multi-column elements, flex containers, grid containers |
Vererbt | Nein |
Prozentwerte | beziehen sich auf die entsprechende Dimension des Inhaltsbereichs |
Berechneter Wert | as specified, with <length>s made absolute, and normal computing to zero except on multi-column elements |
Animationstyp | Lä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
<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.
.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
<div id="grid">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
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
<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
.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