CSS : un texte réparti sur plusieurs colonnes ; propriétés column

Attention page non responsive.
Orientez votre tablette en mode portrait.

Exemple 1

Le rendu

Le code correspondant

... <style> aside { width : 96% ; margin : 10px auto 10px auto ; background : skyblue; column-width : 250px; column-gap : 10px ; column-rule : 1px dashed red; word-break : break-all; } aside h3 {column-span : all;} aside h4 {break-before :column; text-align :center;} ... <aside> <h3>Titre principal</h3> <p>Comme je viens de te le dire Florence, ... <p>Il a recommencé et recommencé. Pratiquement tout les ordinateurs existants furent sous son contrôle. ... <h4>Sous-titre</h4> ... </aside> ...

Commentaire du code

Pouvoir répartir proprement du texte sur plusieurs colonnes sans prise de tête. Voila un vieux rêve des développeurs WEB qui enfin se réalise enfin.

La propriété Colum-rule est suivie de 3 valeurs car c'est un raccourci qui remplace : column-rule-width, colum-rule-width, colum-rule-color

Les coupures de mots se font n'importe où.
Réduisez la largeur de la fenêtre ; vous constatez que sur un petit écran, le choix de "column-width" aboutit à une catastrophe ...
Dans le deuxième exemple ces bugs sont corrigés.

Exemple2

Le rendu

La présentation est beaucoup plus satisfaisante que dans le premier exemple

Titre principal

Comme je viens de te le dire Florence, ce n’est malheureusement pas une blague. David a travaillé sur deux anciennes technologies abandonnées depuis longtemps et il les a couplées. Séparées, elles ne valaient rien, mais, il les a réunies et a démarré le processus. Comme tu dois le savoir, il y a maintenant plus d’ordinateurs sur terre que d’humains et tous ces ordinateurs sont connectés entres eux grâce au réseau des réseaux : Internet.

Il a recommencé et recommencé. Pratiquement tout les ordinateurs existants furent sous son contrôle. Il ne laissait pas de trace, ne se montrait pas. Et puis, il a découvert les dialogues en direct via Internet, le téléphone, la visio conférence, la domotique...

Sous-titre

Dans le plancher pour savoir si quelqu'un marchait et quel poids il faisait. Le cœur pouvait alors déterminer de quelle personne il s'agissait. Dans les murs, des cellules photosensibles, des micro-caméras et tout un réseau de détecteurs divers (magnétique, pression, infrarouge...) permettait de déterminer la position exacte de chaque personne et objet dans la maison, de ventiler ou chauffer en conséquence, d'allumer ou d'éteindre la lumière...

La grande porte s’ouvrit lourdement en coulissant sur le côté gauche sans faire le moindre bruit. Derrière la porte, une nouvelle route, éclairée par de multiples projecteurs accrochés de chaque côtés, s’enfonçait dans les profondeurs de cet ouvrage. Cette route était faite de zigzag incessant, certainement pour empêcher le souffle d’une bombe atomique pensa David.

La grande porte s’ouvrit lourdement en coulissant sur le côté gauche sans faire le moindre bruit. Derrière la porte, une nouvelle route, éclairée par de multiples projecteurs accrochés de chaque côtés, s’enfonçait dans les profondeurs de cet ouvrage. Cette route était faite de zigzag incessant, certainement pour empêcher le souffle d’une bombe atomique pensa David.

Le code CSS correspondant

Le texte est contenu dans la boite ARTICLE. Le contenu est identique à l'exemple 1.
Quant au CSS quelques différences :

article { width : 96% ; margin : 10px auto 10px auto ; background : lightgrey; column-count :3 ; column-width : auto; column-gap :20px ; column-rule : 2px solid silver; -webkit-hyphens : auto ; -moz-hyphens : auto ; -ms-hyphens : auto ; hyphens : auto; } p {margin : 10px ; text-align : left;} article h3 {column-span : all;} article h4 {break-before :column; text-align :center;}

A la place de "column-width" j'ai utilisé "column-count".
A la place de "word-break" j'ai utilisé "hyphens".

La propriété hyphens

La propriété hyphens doit encore être préfixée !
Il faut aussi préciser dans le code HTML la langue car les règles de césure varient selon les langues.
Dans l'exemple le texte est en français dans il faut écrire dans la partie HEAD :

<html lang ="fr">

Emploi de l'attribut "lang" dans la balise HTML. Retour menu