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
/* 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-heightdu conteneur de contenu est définie sur une valeur de type<length>,autose résout enwrap, sinon elle se résout ennowrap. 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 initiale | auto |
|---|---|
| Applicabilité | éléments sur plusieurs colonnes |
| Héritée | non |
| Valeur calculée | comme défini |
| Type d'animation | discrè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>).
<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.
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.
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.
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
- La propriété
column-count - La propriété
column-width - La propriété raccourcie
columns - La propriété
column-height - Le module de mise en page multi-colonnes CSS