Comment utiliser les colonnes CSS pour les mises en page de sites Web à plusieurs colonnes

Table des matièresDévelopper

Pendant de nombreuses années, CSS flottants ont été un élément délicat, mais nécessaire, dans la création de mises en page de sites Web. Si votre conception nécessitait plusieurs colonnes, vous vous êtes tourné vers les flottants. Le problème avec cette méthode est que, malgré l'incroyable ingéniosité dont les concepteurs/développeurs Web ont fait preuve dans la création de sites complexes mises en page , les flottants CSS n'ont jamais vraiment été destinés à être utilisés de cette manière.





Alors que les éléments flottants et le positionnement CSS auront certainement leur place dans la conception Web pendant de nombreuses années, les nouvelles techniques de mise en page, notamment CSS Grid et Flexbox, offrent désormais aux concepteurs Web de nouvelles façons de créer la mise en page de leur site. Une autre nouvelle technique de mise en page qui montre beaucoup de potentiel est CSS Multiple Columns.

Les colonnes CSS existent depuis quelques années maintenant, mais le manque de prise en charge dans les anciens navigateurs (principalement les anciennes versions d'Internet Explorer) a empêché de nombreux professionnels du Web d'utiliser ces styles dans leur travail de production.



Avec la fin de la prise en charge de ces anciennes versions d'IE, certains concepteurs Web expérimentent maintenant de nouvelles options de mise en page CSS, y compris les colonnes CSS, et constatent qu'ils ont beaucoup plus de contrôle avec ces nouvelles approches qu'avec les flottants.

Les bases des colonnes CSS

Comme son nom l'indique, CSS Multiple Columns (aussi appelé CSS3 mise en page multi-colonnes) vous permet de diviser le contenu en un nombre défini de colonnes. Les propriétés CSS les plus élémentaires que vous utiliseriez sont :



  • nombre de colonnes
  • écart de colonne

Pour le nombre de colonnes, vous spécifiez le nombre de colonnes que vous souhaitez. L'écart de colonne serait les gouttières ou l'espacement entre ces colonnes. Le navigateur prendra ces valeurs et divisera le contenu de manière égale dans le nombre de colonnes que vous spécifiez.

Un exemple courant de plusieurs colonnes CSS dans la pratique serait de diviser un bloc de contenu textuel en plusieurs colonnes, comme ce que vous verriez dans un article de journal. Supposons que vous ayez le balisage HTML suivant (notez qu'à titre d'exemple, nous n'avons mis que le début d'un paragraphe, alors qu'en pratique, il y aurait probablement plusieurs paragraphes de contenu dans ce balisage) :

|__+_|
Le titre de votre article

Imaginez beaucoup de paragraphes de texte ici...



Si vous avez ensuite écrit ces styles CSS :



|__+_|

Cette règle CSS diviserait la division du contenu en 3 colonnes égales avec un espace de 30 pixels entre elles. Si vous vouliez deux colonnes au lieu de 3, vous modifieriez simplement cette valeur et le navigateur calculerait les nouvelles largeurs de ces colonnes pour diviser le contenu de manière égale. Notez que nous utilisons d'abord les propriétés préfixées par le fournisseur, suivies des déclarations non préfixées.

Aussi simple que cela puisse paraître, son utilisation de cette manière est discutable pour l'utilisation du site Web. Oui, vous pouvez diviser un tas de contenu en plusieurs colonnes, mais ce n'est peut-être pas la meilleure expérience de lecture pour le Web, surtout si la hauteur de ces colonnes tombe en dessous du pli de l'écran.



Les lecteurs devraient alors faire défiler vers le haut et vers le bas afin de lire le contenu complet. Pourtant, le principe des colonnes CSS est aussi simple que vous le voyez ici, et il peut être utilisé pour faire bien plus que simplement diviser le contenu de certains paragraphes - il peut, en effet, être utilisé pour la mise en page.

Mise en page avec des colonnes CSS

Supposons que vous ayez une page Web avec une zone de contenu comportant 3 colonnes de contenu. Il s'agit d'une mise en page de site Web très courante, et pour obtenir ces 3 colonnes, vous feriez normalement flotter les divisions qui s'y trouvent. Avec les colonnes multiples CSS, c'est tellement plus facile.



Voici un exemple de code HTML :

|__+_|

De notre blog

Le contenu irait ici…






évènements à venir

Le contenu irait ici…




Le CSS pour créer ces multiples colonnes commence par ce que vous avez vu précédemment :

|__+_|

Maintenant, le défi ici est que le navigateur veut diviser ce contenu de manière égale, donc si la longueur du contenu de ces divisions est différente, ce navigateur divisera en fait le contenu d'une division individuelle, en ajoutant le début de celle-ci à une colonne, puis en continuant dans un autre (vous pouvez le voir en utilisant ce code pour exécuter une expérience et ajouter différentes longueurs de contenu à l'intérieur de chaque division).

Ce n'est pas ce que vous voulez. Vous voulez que chacune de ces divisions crée une colonne distincte et, quelle que soit la taille du contenu d'une division individuelle, vous ne voulez jamais qu'il soit divisé. Vous pouvez y parvenir en ajoutant cette ligne supplémentaire de CSS :

|__+_|

Cela forcera les divisions qui se trouvent à l'intérieur du contenu à rester intactes même si le navigateur le divise en plusieurs colonnes. Mieux encore, puisque nous n'avons rien donné ici de largeur fixe, ces colonnes se redimensionneront automatiquement au fur et à mesure que le navigateur se redimensionne, ce qui en fait une application idéale pour sites Web réactifs . Avec ce style de bloc en ligne en place, chacune de vos 3 divisions sera une colonne de contenu distincte.

Utilisation de la largeur de colonne

Il existe une autre propriété que le nombre de colonnes que vous pouvez utiliser, et selon vos besoins de mise en page, cela peut en fait être un meilleur choix pour votre site. Il s'agit de largeur de colonne. En utilisant le même balisage HTML que celui indiqué précédemment, nous pourrions le faire à la place avec notre CSS :

|__+_|

La façon dont cela fonctionne est que le navigateur utilise cette largeur de colonne comme valeur maximale de cette colonne. Ainsi, si la fenêtre du navigateur mesure moins de 500 pixels de large, ces 3 divisions apparaîtront dans une seule colonne, l'une au-dessus de l'autre. Il s'agit d'une mise en page typique utilisée pour les mises en page mobiles/petit écran.

Au fur et à mesure que la largeur du navigateur augmente pour être suffisamment grande pour contenir 2 colonnes avec les espaces de colonne spécifiés, le navigateur passera automatiquement d'une disposition à une seule colonne à deux colonnes. Continuez à augmenter la largeur de l'écran et vous obtiendrez éventuellement un design à 3 colonnes, chacune de nos 3 divisions étant affichée dans sa propre colonne. Encore une fois, c'est un excellent moyen d'obtenir de la réactivité, compatible avec plusieurs appareils mises en page, et vous n'avez même pas besoin d'utiliser requêtes des médias pour changer les styles de mise en page !

Autres propriétés de colonne

En plus des propriétés couvertes ici, il existe également des propriétés pour la règle de colonne, y compris les valeurs de couleur, de style et de largeur qui vous permettent de créer des règles entre vos colonnes. Ceux-ci seraient utilisés à la place des bordures si vous souhaitez avoir des lignes séparant vos colonnes.

Il est temps d'expérimenter

Actuellement, CSS Multiple Column Layout est très bien pris en charge. Avec les préfixes, plus de 94 % des utilisateurs Web seraient en mesure de voir ces styles, et ce groupe non pris en charge ne serait en fait que des versions beaucoup plus anciennes d'Internet Explorer qui ne sont plus prises en charge de toute façon.

Avec ce niveau de support désormais en place, il n'y a aucune raison de ne pas commencer à expérimenter les colonnes CSS et à déployer ces styles sur des sites Web prêts pour la production. Vous pouvez commencer vos expériences en utilisant le HTML et le CSS présentés dans cet article et jouer avec différentes valeurs pour voir ce qui fonctionnerait le mieux pour les besoins de mise en page de votre site.