column-gap
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La propriété CSS column-gap définit la taille de l'espace (Gouttières) entre les colonnes d'un élément.
Initialement définie dans la disposition multi-colonnes, la définition de column-gap a été élargie pour couvrir plusieurs méthodes de mise en page. Elle est désormais définie dans l'alignement des boîtes CSS et peut être utilisée pour les dispositions multi-colonnes, les dispositions flexibles et les dispositions en grille.
Les premières versions de la spécification nommaient cette propriété grid-column-gap, et pour maintenir la compatibilité avec les anciens sites, les navigateurs acceptent toujours grid-column-gap comme alias de column-gap.
Exemple interactif
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>Un</div>
<div>Deux</div>
<div>Trois</div>
<div>Quatre</div>
<div>Cinq</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
width: 200px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Syntaxe
/* Valeur avec un mot-clé */
column-gap: normal;
/* Valeurs de type <length> */
column-gap: 3px;
column-gap: 2.5em;
/* Valeurs de type <percentage> */
column-gap: 3%;
/* Valeurs globales */
column-gap: inherit;
column-gap: initial;
column-gap: revert;
column-gap: revert-layer;
column-gap: unset;
La propriété column-gap est définie par l'une des valeurs listées ci‑dessous.
Valeurs
normal-
Un mot-clé qui indique qu'on souhaite utiliser l'espacement par défaut créé par le navigateur. Pour les dispositions en colonnes, cette valeur correspond à
1em, sinon elle correspond à0. <length>-
Une valeur de longueur (
<length>) qui définit la taille de l'espace entre les colonnes. Cette valeur (<length>) peut être nulle mais ne doit pas être négative. <percentage>-
Une valeur de pourcentage (
<percentage>) qui définit la taille de l'espace entre les colonnes. Cette valeur (<percentage>) peut être nulle mais ne doit pas être négative.
Définition formelle
| Valeur initiale | normal |
|---|---|
| Applicabilité | multi-column elements, flex containers, grid containers |
| Héritée | non |
| Pourcentages | fait référence à la dimension correspondante de la zone de contenu |
| Valeur calculée | as specified, with <length>s made absolute, and normal computing to zero except on multi-column elements |
| Type d'animation | une longueur, pourcentage ou calc() ; |
Syntaxe formelle
column-gap =
normal |
<length-percentage [0,∞]>
<length-percentage> =
<length> |
<percentage>
Exemples
>Disposition flexible
Dans cet exemple, un conteneur flexible contient six éléments flexibles de deux largeurs différentes (200px et 300px), de sorte que les éléments flexibles ne sont pas disposés en grille. La propriété column-gap sert à ajouter un espace horizontal entre les éléments flexibles adjacents.
HTML
<div class="flexbox">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
Pour créer un conteneur flexible, on définit sa propriété display sur flex. On utilise ensuite la propriété raccourcie flex-flow pour définir flex-direction sur row (la valeur par défaut) et flex-wrap sur wrap, ce qui permet aux éléments flexibles de passer sur de nouvelles lignes si nécessaire. Par défaut, les éléments flexibles s'étirent pour atteindre la hauteur de leur conteneur. En définissant une height, même les éléments flexibles vides ont une hauteur de 100px.
Pour mieux démontrer la propriété column-gap, les éléments flexibles de cet exemple ont deux largeurs différentes. La largeur des éléments flexibles est définie dans les balises <div>. Nous utilisons le composant flex-basis de la propriété raccourcie flex pour donner à tous les éléments flexibles une largeur de 200px. Nous ciblons ensuite chaque troisième élément flexible avec le sélecteur :nth-of-type(3n) pour les élargir à 300px.
La valeur de column-gap est définie à 20px sur le conteneur flexible afin de créer un espace de 20px entre les éléments flexibles adjacents sur chaque ligne.
.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;
}
Résultat
Note :
Bien qu'il y ait un espace horizontal entre les éléments flex adjacents sur chaque ligne, il n'existe pas d'espace entre les lignes. Pour définir un espace vertical entre les lignes flex, vous pouvez spécifier une valeur non nulle pour la propriété row-gap. La propriété raccourcie gap permet également de définir à la fois row-gap et column-gap dans une seule déclaration, dans cet ordre.
Disposition en grille
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;
}
Résultat
Disposition multi-colonnes
HTML
<p class="content-box">
Un texte sur plusieurs colonnes avec une gouttière de 40px paramétrée grâce à
la propriété `column-gap`. C'est plutôt pas mal comme effet non ?
</p>
CSS
.content-box {
column-count: 3;
column-gap: 40px;
}
Résultat
Spécifications
| 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> |
Compatibilité des navigateurs
Voir aussi
- La propriété
row-gap - La propriété
gap - Les concepts de base des grilles CSS : les gouttières
- Mettre en forme les colonnes