logo oujood
🔍

CSS Multi-colonnes : Créer des Layouts en Colonnes Multiples

Le module CSS Multi-column Layout permet d'organiser le contenu en colonnes multiples, similaire aux journaux et magazines. Découvrez comment utiliser column-count, column-gap et column-rule pour créer des mises en page élégantes et responsives.
Dans ce tutoriel :
• Créer plusieurs colonnes automatiquement
• Gérer l'espacement entre les colonnes
• Ajouter des séparateurs visuels
• Contrôler la largeur des colonnes

OUJOOD.COM

CSS Multi-colonnes : Le Guide Complet

CSS3 cours tutorial

Support Navigateurs Modernes

Propriété

Support Navigateurs

column-count chrome
Chrome 50+
fire fox
Firefox 52+
IE
IE 10+
opera
Opera 37+
safari
Safari 10+
column-gap chrome
Chrome 50+
fire fox
Firefox 52+
IE
IE 10+
opera
Opera 37+
safari
Safari 10+
column-rule chrome
Chrome 50+
fire fox
Firefox 52+
IE
IE 10+
opera
Opera 37+
safari
Safari 10+

Excellente nouvelle : Tous les navigateurs modernes supportent nativement les propriétés multi-colonnes sans préfixes vendors !
Les préfixes -webkit- et -moz- ne sont plus nécessaires depuis 2017.
Note : Si vous devez supporter Internet Explorer 9 ou versions antérieures, ces propriétés ne fonctionneront pas.


Créer Plusieurs Colonnes avec column-count

La propriété column-count définit le nombre de colonnes dans lesquelles le contenu sera réparti automatiquement. C'est la méthode la plus simple pour créer une mise en page multi-colonnes.

Exemple : Diviser un article en trois colonnes

Exemple :     📋 Copier le code

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>CSS Multi-colonnes - Exemple de base</title>
  <style> 
    .article-colonnes {
      column-count: 3;
      max-width: 1200px;
      margin: 0 auto;
    }
  </style>
</head>
<body>
  <div class="article-colonnes">
    <h2>Les Avantages des Mises en Page Multi-colonnes</h2>
    <p>Les colonnes multiples améliorent la lisibilité des longs textes en réduisant la longueur des lignes. 
    Des études typographiques montrent que des lignes de 45-75 caractères sont optimales pour la lecture.</p>
    
    <p>En utilisant les propriétés CSS multi-colonnes, vous pouvez créer des layouts sophistiqués 
    sans avoir besoin de diviser manuellement votre contenu en plusieurs éléments HTML. Le navigateur 
    gère automatiquement la distribution du contenu.</p>
    
    <p>Cette technique est particulièrement utile pour les articles de blog, les sections de contenu 
    dense, et les designs inspirés des magazines imprimés. Elle s'adapte également bien aux différentes 
    tailles d'écran avec les media queries.</p>
  </div>
</body>
</html>

Gérer l'Espacement avec column-gap

La propriété column-gap contrôle l'espace (gouttière) entre les colonnes. Par défaut, cet espace est de 1em, mais vous pouvez le personnaliser selon vos besoins de design.

Exemple : Définir un espacement de 40 pixels entre les colonnes

Exemple :     📋 Copier le code

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>CSS Multi-colonnes avec espacement personnalisé</title>
  <style> 
    .magazine-layout {
      column-count: 3;
      column-gap: 40px;
      padding: 20px;
      background-color: #f9f9f9;
    }
    
    .magazine-layout h3 {
      column-span: all; /* Le titre s'étend sur toutes les colonnes */
      margin-bottom: 1em;
    }
  </style>
</head>
<body>
  <article class="magazine-layout">
    <h3>L'Évolution du Web Design</h3>
    
    <p>Le design web a considérablement évolué au cours des dernières décennies. 
    Des premiers sites statiques aux applications web complexes d'aujourd'hui, 
    les technologies CSS ont joué un rôle crucial dans cette transformation.</p>
    
    <p>Les mises en page multi-colonnes représentent une des nombreuses techniques 
    qui permettent aux designers de créer des expériences visuelles riches et 
    variées, tout en maintenant un code propre et maintenable.</p>
    
    <p>Avec l'augmentation des tailles d'écran, utiliser intelligemment l'espace 
    horizontal devient essentiel pour offrir une expérience de lecture confortable 
    et professionnelle à vos utilisateurs.</p>
  </article>
</body>
</html>

Ajouter des Séparateurs avec column-rule

La propriété column-rule permet d'ajouter une ligne de séparation visuelle entre les colonnes. Elle fonctionne de manière similaire à la propriété border et accepte les mêmes valeurs pour la largeur, le style et la couleur.

Exemple : Ajouter une règle stylisée entre les colonnes

Exemple :     📋 Copier le code

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>CSS Multi-colonnes avec séparateurs</title>
  <style> 
    .elegant-columns {
      column-count: 3;
      column-gap: 40px;
      column-rule: 2px solid #0066cc;
      padding: 30px;
      font-family: Georgia, serif;
      line-height: 1.6;
    }
    
    /* Version responsive */
    @media (max-width: 768px) {
      .elegant-columns {
        column-count: 2;
      }
    }
    
    @media (max-width: 480px) {
      .elegant-columns {
        column-count: 1;
      }
    }
  </style>
</head>
<body>
  <div class="elegant-columns">
    <h2>Techniques Avancées de Mise en Page</h2>
    
    <p>Les propriétés multi-colonnes CSS offrent une flexibilité remarquable 
    pour créer des designs sophistiqués. En combinant column-count, column-gap 
    et column-rule, vous pouvez reproduire l'esthétique des magazines imprimés 
    directement dans le navigateur.</p>
    
    <p>N'oubliez pas d'utiliser les media queries pour adapter le nombre de colonnes 
    aux différentes tailles d'écran. Sur mobile, une seule colonne est généralement 
    préférable, tandis que les grands écrans peuvent accommoder trois colonnes ou plus.</p>
    
    <p>Cette approche responsive garantit que votre contenu reste lisible et 
    esthétiquement plaisant sur tous les appareils, des smartphones aux écrans 
    de bureau larges.</p>
  </div>
</body>
</html>

Propriétés CSS Multi-colonnes : Référence Complète

Propriété

Description

column-count Définit le nombre de colonnes dans lesquelles diviser le contenu
column-width Spécifie la largeur optimale pour chaque colonne (alternative à column-count)
columns Propriété raccourcie pour définir column-width et column-count simultanément
column-gap Contrôle l'espace (gouttière) entre les colonnes
column-rule Propriété raccourcie pour créer une ligne de séparation entre les colonnes
column-rule-width Définit l'épaisseur de la ligne de séparation
column-rule-style Spécifie le style de la ligne (solid, dashed, dotted, etc.)
column-rule-color Définit la couleur de la ligne de séparation
column-span Permet à un élément de s'étendre sur toutes les colonnes (valeurs: none | all)
column-fill Contrôle comment le contenu est distribué entre les colonnes (balance | auto)
Par carabde 10 mars 2014 - Mis à jour en 2025

chapitre précédent       chapitre suivant