Mise en page

La mise en page consiste en la mise en relation des éléments graphiques présents sur une surface et en la gestion de l’espace entre ces éléments.

Au cours du temps, et particulièrement depuis l’avènement de CSS et de la navigation mobile, les principes et les outils de mise en page ont beaucoup évolué sur le Web. Plusieurs outils et techniques nous permettent aujour’hui de concevoir des mises en page pour le web.

Le web est un média fluide dans lequel la taille de l’écran, la variabilité des contenus, le temps et l’interactivité ont des impacts sur la présence des éléments d’une page. Cela impose une pensée de la mise en page comme un système dynamique. Le terme “responsive” (ou adaptatif) rassemble les approches nécessaires à la conception de telles mise en pages.

Comment choisir ?

Pour déterminer quelles solutions techniques doivent être adoptées en réponse à une intention de mise en page, il est souhaitable de déterminer prioritairement les grands principes, puis d’affiner progressivement les logiques en fonction des relations souhaitées entre les éléments.

→ Exemple pratique pas à pas

Flexbox

Flexbox est principalement conçu pour déterminer la mise en page d’éléments dans un contexte unidimensionnel (une ligne ou une colonne). Il est idéal pour construire des barres de navigation, pour centrer un élément dans son conteneur ou pour aligner des éléments.

flexbox

Consulter la documentation sommaire et voir quelques exemples avec flex dans la section dédiée.

Grid

Grid est la dernière innovation de CSS pour la mise en page. C’est un module puissant –potentiellement complexe– qui est une des plus grandes évolutions de la mise en page pour le Web. Il est dédié aux mise en page multidimensionnelles (lignes et colonnes).

grid

Consulter la documentation sommaire et voir quelques exemples avec grid dans la section dédiée.

Relative et absolue

Les positionnements absolus et relatifs d’éléments offrent une très grande souplesse pour organiser des éléments dans l’espace.

Ils permettent à des éléments positionnés en valeurs absolues ou relatives de “sortir du flux”. Ces éléments deviennent alors des “calques” que l’on peut dimensionner et placer dans l’espace indépendemment les uns des autres.

positions

Consulter la documentation sommaire et voir quelques exemples avec position: absolute ou position: relative dans la section dédiée.

Exemples de mise en page

Des exemples de mise en page, utilisant grid, flex ou position sont disponibles dans la section dédiée.

Old school

Avant l’avènement de flex et grid, d’autres techniques de mise en page étaient utilisées.

Voir les archives

Tableaux, lignes et cellules

Avant CSS, on utilisait les éléments <table>, leurs <tr> (lignes) et <td> (cellules) pour mettre en page les sites web. Pour créer des espaces dans la mise en page, on utilisait des images transparentes (spacer.gif) en forçant leurs tailles. C’était douloureux, inefficace et non-sémantique au possible (les <table> sont dédiées à l’affichage de données tabulaires).

Voir le site de Libération en 2000, sur web.archive.org.

Propriétés float et inline-block

Les propriétés CSS float:left|right et display:inline-block ont ensuite permis de créer des mise en pages plus souples, et de retrouver la dimension sémantique. Ces techniques, bien que souffrant de nombreuses limites, sont matures et efficientes, mais ont été supplantées depuis par les modules CSS Grid et Flexbox.

Voir l’archive de la documentation sur float et inline-block.