W3docs

Propriété CSS column-span

La propriété CSS column-span définit si un élément occupe une ou toutes les colonnes. Découvrez les valeurs et des exemples.

La propriété CSS column-span contrôle si un élément reste à l'intérieur d'une seule colonne d'une mise en page multi-colonnes ou s'étend sur toutes les colonnes. C'est l'une des propriétés CSS3.

Cette page explique ce que fait column-span, les valeurs qu'elle accepte, des exemples exécutables pour chacune, quand l'utiliser et les pièges courants à éviter.

Le problème qu'elle résout

Lorsque vous divisez du texte en plusieurs colonnes avec column-count ou columns, chaque enfant du conteneur multi-colonnes s'écoule colonne par colonne — y compris les titres. Un titre de section que vous souhaitez afficher comme une bannière au-dessus du bloc entier se retrouverait autrement coincé dans la première colonne.

column-span: all sort un élément du flux de colonnes pour qu'il s'étende sur toute la largeur, tandis que le contenu au-dessus et en dessous continue de s'écouler en colonnes. C'est exactement ainsi que les mises en page de magazines et de journaux gèrent un titre au-dessus d'un corps de texte multi-colonnes.

.article {
  column-count: 3;
}
.article h2 {
  column-span: all; /* headline runs the full width above the 3 columns */
}
Info

Un élément ne peut s'étendre sur plusieurs colonnes que s'il s'agit d'un élément de niveau bloc dans le flux normal. Les éléments flottants, positionnés en absolu ou en ligne ignorent column-span.

Valeur initialenone
S'applique àéléments de niveau bloc dans le flux normal
HéritéNon.
AnimatableNon.
VersionCSS Multi-column Layout Module Level 1
Syntaxe DOMobject.style.columnSpan = "all"; (Note: CSS properties use camelCase in JavaScript)

Syntaxe

Syntaxe de la propriété CSS column-span

column-span: none | all | initial | inherit;

Exemple : valeur none

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        column-count: 4;
      }
      h2 {
        column-span: none;
      }
    </style>
  </head>
  <body>
    <div>
      <h2>Lorem Ipsum is simply dummy text</h2> Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
  </body>
</html>

Résultat

Exemple CSS column-span avec la valeur none

Avec none, le titre est traité comme n'importe quel autre contenu et reste dans la première colonne. Dans l'exemple suivant, le même titre s'étend sur les quatre colonnes.

Exemple : valeur all

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        column-count: 4;
      }
      h2 {
        column-span: all;
      }
    </style>
  </head>
  <body>
    <div>
      <h2>Lorem Ipsum is simply dummy text</h2>
      Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
  </body>
</html>

Exemple : valeur initial

initial réinitialise column-span à sa valeur par défaut, qui est none — le titre se comporte donc exactement comme dans le premier exemple et reste dans une seule colonne.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        column-count: 4;
      }
      h2 {
        column-span: initial;
      }
    </style>
  </head>
  <body>
    <div>
      <h2>Lorem Ipsum is simply dummy text</h2> 
      Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
  </body>
</html>

Exemple : valeur inherit

inherit prend la valeur calculée de column-span depuis l'élément parent. Notez que column-span n'est pas hérité par défaut, vous n'utilisez donc ce mot-clé que lorsque vous souhaitez explicitement qu'un enfant copie le paramètre de son parent.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        column-count: 4;
      }
      h2 {
        column-span: inherit;
      }
    </style>
  </head>
  <body>
    <div>
      <h2>Lorem Ipsum is simply dummy text</h2>
      Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
  </body>
</html>

Quand utiliser column-span

  • Les titres et en-têtes de section qui doivent se trouver au-dessus d'un corps de texte multi-colonnes, comme la manchette d'un journal.
  • Les citations en exergue ou les encadrés que vous souhaitez faire ressortir du rythme des colonnes pour les mettre en valeur.
  • Les médias larges — une image pleine largeur, un tableau ou un graphique qui paraîtrait à l'étroit dans une seule colonne étroite.

Pour tout le reste, laissez la valeur par défaut none afin que le contenu s'écoule naturellement entre les colonnes.

Points de vigilance

  • Seuls none et all sont des valeurs d'extension. Il n'existe pas de column-span: 2 pour s'étendre sur un nombre arbitraire de colonnes — c'est tout ou rien.
  • Un élément en extension divise le cadre de colonnes. Le contenu qui le précède remplit les colonnes, puis l'élément s'affiche en pleine largeur, et le contenu restant commence un nouvel ensemble de colonnes en dessous.
  • column-span ne fonctionne qu'à l'intérieur d'un conteneur multi-colonnes. Sans column-count ou columns sur le parent, la propriété n'a aucun effet.
  • column-span: all peut interférer avec break-inside et l'équilibrage des colonnes dans certains navigateurs, alors testez avec du contenu long.

Propriétés associées

  • column-count — définit le nombre de colonnes dans lesquelles le contenu est divisé.
  • column-width — définit la largeur idéale de chaque colonne.
  • columns — raccourci pour column-width et column-count.
  • column-gap — définit l'espace entre les colonnes.
  • column-rule — trace une ligne entre les colonnes.

Valeurs

ValeurDescription
noneIl s'agit de la valeur par défaut. L'élément ne s'étend pas sur toutes les colonnes ; il reste dans une seule colonne.
allL'élément s'étend sur toutes les colonnes.
initialRéinitialise la propriété à sa valeur par défaut (none).
inheritHérite la propriété de son élément parent.

Pratique

Pratique
Quelle est la fonction de la propriété 'column-span' en CSS ?
Quelle est la fonction de la propriété 'column-span' en CSS ?
Was this page helpful?