CSS - mise en page à plusieurs colonnes

Bonjour, futurs développeurs web ! Aujourd'hui, nous allons plonger dans l'univers passionnant des mises en page à plusieurs colonnes avec CSS. En tant que votre enseignant de quartier bienveillant, je suis là pour vous guider à travers ce voyage avec un tas d'exemples et d'explications. Alors, c'est parti !

CSS - Multi columns

Introduction aux mises en page à plusieurs colonnes

Imaginez que vous lisez un journal. Notez comment le texte est organisé en colonnes nettes ? C'est exactement ce que nous allons réaliser avec CSS, mais sur des pages web ! Les mises en page à plusieurs colonnes nous permettent de créer des structures de contenu visuellement attractives et faciles à lire.

Mise en page à plusieurs colonnes CSS - mise en page en trois colonnes

Commençons par une mise en page de base en trois colonnes. C'est parfait pour créer du contenu au style de magazine ou organiser des informations sur une page web.

<div class="three-column">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.three-column {
column-count: 3;
column-gap: 40px;
}

Dans cet exemple, nous utilisons la propriété column-count pour spécifier que nous voulons trois colonnes. La propriété column-gap définit l'espace entre chaque colonne.

Mise en page à plusieurs colonnes CSS - Définir la largeur des colonnes

Parfois, au lieu de spécifier le nombre de colonnes, vous pourriez vouloir définir une largeur spécifique pour chaque colonne. Voyons comment cela fonctionne :

<div class="flexible-columns">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.flexible-columns {
column-width: 200px;
}

Ici, nous utilisons column-width pour définir chaque colonne à 200 pixels de large. Le navigateur créera autant de colonnes qu'il peut contenir tout en maintenant cette largeur.

Mise en page à plusieurs colonnes CSS - Styling des colonnes

Maintenant, ajoutons un peu de style à nos colonnes. Nous pouvons ajouter des bordures, changer les couleurs de fond, et plus encore !

<div class="styled-columns">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.styled-columns {
column-count: 3;
column-gap: 40px;
column-rule: 4px dotted #ff00ff;
column-rule-style: dotted;
column-rule-width: 4px;
column-rule-color: #ff00ff;
}

Dans cet exemple, nous utilisons column-rule comme propriété abrégée pour ajouter une ligne pointillée entre les colonnes. Nous pouvons également définir ces propriétés individuellement en utilisant column-rule-style, column-rule-width, et column-rule-color.

Mise en page à plusieurs colonnes CSS - Étendre les colonnes

Parfois, vous pourriez vouloir que un contenu s'étende sur plusieurs colonnes. Voyons comment nous pouvons réaliser cela :

<div class="spanning-columns">
<h2>Cet en-tête s'étend sur toutes les colonnes</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p class="span-two">Ce paragraphe s'étend sur deux colonnes. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</div>
.spanning-columns {
column-count: 3;
column-gap: 40px;
}

.spanning-columns h2 {
column-span: all;
text-align: center;
}

.span-two {
column-span: 2;
background-color: #f0f0f0;
padding: 10px;
}

Ici, nous utilisons column-span: all pour faire en sorte que l'en-tête s'étende sur toutes les colonnes, et column-span: 2 pour faire en sorte qu'un paragraphe s'étende sur deux colonnes.

Mise en page à plusieurs colonnes CSS - Fragmentation des colonnes

La fragmentation fait référence à la manière dont le contenu est divisé sur les colonnes. regardons comment nous pouvons contrôler cela :

<div class="fragmented-columns">
<h3>Chapitre 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<h3>Chapitre 2</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.fragmented-columns {
column-count: 2;
column-gap: 40px;
}

.fragmented-columns h3 {
break-after: column;
}

Dans cet exemple, nous utilisons break-after: column pour nous assurer que chaque en-tête de chapitre commence en haut d'une nouvelle colonne.

Propriétés connexes

Résumons toutes les propriétés que nous avons apprises dans un tableau pratique :

Propriété Description
column-count Spécifie le nombre de colonnes
column-width Définit la largeur de chaque colonne
column-gap Définit l'espace entre les colonnes
column-rule Abbrégé pour définir une ligne entre les colonnes
column-rule-style Définit le style de la règle de colonne
column-rule-width Définit la largeur de la règle de colonne
column-rule-color Définit la couleur de la règle de colonne
column-span Permet à un élément de s'étendre sur plusieurs colonnes
break-after Contrôle les sauts de colonne après un élément

Et voilà, amis ! Nous avons fait le tour du pays des mises en page à plusieurs colonnes avec CSS. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces propriétés. Qui sait ? Vous pourriez créer le prochain grand site de style magazine !

Comme mon ancien professeur aimait dire, "CSS est comme la cuisine. Vous pourriez faire un peu de désordre au début, mais avec la pratique, vous serez bientôt à créer des œuvres d'art en un rien de temps !" Alors continuez à coder, continuez à apprendre, et surtout, amusez-vous bien !

Credits: Image by storyset