Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

column-wrap

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété CSS column-wrap définit le comportement de retour à la ligne des colonnes débordantes dans une mise en page multi-colonnes CSS.

Syntaxe

css
/* Valeurs avec un mot-clé */
column-wrap: auto;
column-wrap: nowrap;
column-wrap: wrap;

/* Valeurs globales */
column-wrap: inherit;
column-wrap: initial;
column-wrap: revert;
column-wrap: revert-layer;
column-wrap: unset;

Valeurs

auto

La valeur initiale. Si la propriété column-height du conteneur de contenu est définie sur une valeur de type <length>, auto se résout en wrap, sinon elle se résout en nowrap.

nowrap

Les colonnes débordantes dépassent dans la direction en ligne.

wrap

Les colonnes débordantes sont placées dans une nouvelle rangée dans la direction de bloc.

Description

La propriété column-wrap peut être utilisée pour définir les colonnes d'une mise en page multi-colonnes CSS afin qu'elles se replient sur une nouvelle rangée lorsqu'elles commencent à déborder de la largeur de la colonne. Cela est utile pour créer des mises en page plus lisibles lors de l'utilisation des propriétés column-count ou column-width pour définir plusieurs colonnes.

Sans column-wrap, les colonnes excédentaires déborderont sur le côté, et les lecteurs devront faire défiler dans la direction en ligne pour lire tout le contenu. La propriété column-height, ainsi que column-wrap, permet de définir une hauteur spécifique pour les colonnes et de les envelopper sur une nouvelle rangée de colonnes lorsque le bord du conteneur est atteint.

La valeur par défaut de column-wrap est auto, ce qui se résout en wrap lorsque column-height est défini sur une valeur de type <length> ; wrap permet aux colonnes à hauteur fixe de s'enrouler sur plusieurs rangées. Lorsque column-height est égal à auto, column-wrap: auto se résout en nowrap, permettant aux colonnes de déborder horizontalement si une hauteur de conteneur fixe est définie.

En raison de ce comportement par défaut, il n'est généralement pas nécessaire de définir explicitement la propriété column-wrap.

Définition formelle

Valeur initialeauto
Applicabilitééléments sur plusieurs colonnes
Héritéenon
Valeur calculéecomme défini
Type d'animationdiscrète

Syntaxe formelle

column-wrap = 
auto |
nowrap |
wrap

Exemples

Utilisation simple

Cet exemple démontre une utilisation simple de la propriété column-wrap pour créer une mise en page multi-colonnes enveloppée en définissant une propriété column-height.

HTML

Nous incluons un poème de Dr. Seuss en utilisant une liste ordonnée (<ol>) contenant 28 éléments <li>, suivi du nom de l'auteur dans un paragraphe (<p>).

html
<ol>
  <li>Un poisson</li>
  <li>Deux poissons</li>
  <li>Poisson rouge</li>
  <li>Poisson bleu</li>
  ...
</ol>
<p>-- Dr. Seuss</p>

CSS

Nous définissons la liste ordonnée (<ol>) comme un conteneur multi-colonnes en définissant la propriété column-width à 150px, ce qui signifie que le conteneur contiendra autant de colonnes que possible, chacune ayant au moins 150px de large. La propriété gap de 2em définit un écart horizontal entre les colonnes et un écart vertical entre les rangées de colonnes. Nous définissons ensuite la column-height à 2em, ce qui fait que la valeur par défaut auto de la propriété column-wrap se résout en wrap pour créer des rangées de colonnes enveloppées.

css
ol {
  column-width: 150px;
  gap: 2em;
  column-height: 3em;
}

Résultat

Comparaison entre wrap et nowrap

Cet exemple présente une mise en page multi-colonnes qui démontre la différence entre les valeurs wrap et nowrap en vous permettant de basculer la valeur de la propriété column-wrap du conteneur de colonnes entre les deux. Le résultat est une mise en page qui change dynamiquement entre le défilement horizontal et vertical.

HTML et JavaScript

Le balisage de cet exemple contient plusieurs paragraphes de contenu, provenant des pages d'accueil HTML, CSS et JavaScript de MDN, et un élément HTML <input type="range"> alimenté par JavaScript pour basculer la valeur de la propriété column-wrap du conteneur entre nowrap et wrap. Le HTML et le JavaScript ont été masqués pour des raisons de concision.

CSS

Nous faisons de l'élément HTML <body> un conteneur multi-colonnes en définissant la propriété column-count à 3. Nous définissons ensuite un gap de 3em 2em, ce qui donne un écart de 3em entre les rangées et un écart de 2em entre les colonnes.

Nous définissons ensuite une column-height de 90vh, ce qui rend les colonnes presque aussi hautes que la fenêtre. Nous définissons également column-wrap sur nowrap, ce qui fait que les colonnes excédentaires débordent horizontalement. Cela est nécessaire car la valeur initiale de column-wrap est auto, ce qui se résout en wrap lorsque column-height est défini sur une valeur de type <length>.

La case à cocher permet de basculer la propriété column-wrap entre nowrap et wrap. Lorsqu'elle est définie sur wrap, les colonnes de contenu excédentaires débordent verticalement dans de nouvelles rangées de colonnes, créant ainsi la mise en page verticale. La valeur de column-height fait en sorte que chaque rangée de colonnes remplisse la fenêtre.

css
body {
  column-count: 3;
  gap: 3em 2em;
  padding: 0 2em;
  column-height: 90vh;
  column-wrap: nowrap;
}

Ensuite, nous définissons la propriété column-span de l'élément HTML <h1> sur all, afin que le titre s'étende sur toutes les colonnes, et nous définissons la propriété margin-top du premier <p> sur 0 afin qu'il s'aligne avec le haut des colonnes.

css
h1 {
  column-span: all;
}

p:first-of-type {
  margin-top: 0;
}

Résultat

La case à cocher permet de basculer la propriété column-wrap entre nowrap et wrap. Lorsqu'elle est définie sur nowrap, les colonnes débordent horizontalement ; lorsqu'elle est définie sur wrap, de nouvelles rangées de colonnes sont ajoutées verticalement.

Spécifications

Spécification
CSS Multi-column Layout Module Level 2
# propdef-column-wrap

Compatibilité des navigateurs

Voir aussi