Sans aucune instruction de style, un document html peut être affiché mais la mise en page de base est rarement satisfaisante. Une mise en page personnalisée s'obtient en ajustant des attributs css. Ces attributs et leurs valeurs possibles sont décrits dans les tableaux ci-dessous.

Cependant, deux principes de base sont également utiles à connaitre: le modèle de boîte et le modèle de placement

1. Le modèle de boîte

Tout élément html se voit attribuer une boite rectangulaire englobante en vue de son affichage par le navigateur. Cette boite a des marges intérieures (attributs padding), des marges extérieures (attributs margin) et une bordure (attribut border) dont l'épaisseur et la visibilité peuvent être modifiées. Cette boite est représentée par la figure ci-dessous. La taille de l'élément (attributs width et height ou max-width et max-height) n'est pas la taille de la boîte. En effet, la largeur ou largeur maximale spécifiées par width et max-width correspondent à la largeur du contenu de la boite. Pour obtenir la largeur de la boite il faut y ajouter la taille des padding, margin, border, et, le cas échéant, la taille de la scrollbar. Les attributs padding, margin et border sont les premiers à connaître, mais les boites ont bien d'autres attributs utiles à une mise en page stylisée. Un résumé de tous les attributs est disponible ici.

padding, margin, box model

Figure 1: le modèle de boite avec margin, padding, border

2. Le modèle de placement

Pour afficher un document HTML, le navigateur crée un flux (liste d'éléments à afficher) utile à la gestion de la mise en page.

Par défaut, le flux du navigateur contient les éléments du document HTML dans l'ordre d'apparition dans le document. Dans le cas le plus simple, les éléments présents dans le flux sont affichés par le navigateur de haut en bas pour les éléments de type bloc et de gauche à droite pour les éléments de type ligne.

Pour faire une mise en page personnalisée, trois principales propriétés CSS permettent de modifier ce comportement de base du navigateur :

Par ailleurs, pour une mise en page personnalisé, trois principaux éléments HTML sont souvent utilisés en combinaison avec les propriétés CSS pour structurer le contenu du document:

Quelques questions de mise en page fréquentes:

1) Comment centrer une page ou un élément HTML?

Pour centrer une page on utilise généralement un élement de type div qui représente la page et qu'on pourra centrer dans son conteneur (généralement body), en fixant des marges droites et gauche du div pour qu'elles soient de même taille comme dans cet exemple.

Si l'élément est un élément textuel ou apparenté (c'est à dire un élément pour lequel la propriété CSS text-align est définie), alors il suffit d'associer à l'élément une règle css qui définisse text-align:center comme dans cet exemple.

Cependant, il existe de nombreux cas particuliers ou d'autres techniques doivent être utilisées.

2) Comment faire une mise en page en plusieurs colonnes?

Deux principales techniques peuvent être utilisées selon que les colonnes sont de même longueur ou de longueurs différentes:

  • Pour des colonnes de même longueur, on peut utiliser l'attribut position: absolute comme dans cet exemple.
  • Pour des colonnes de longueurs quelconques, on considére les colonnes comme des boites flottantes autour desquelles le reste des éléments html s'affichent. On utilise alors l'attribut float:left ou float:right, pour "retirer" les colonnes du flux ou autrement dit en faire des éléments flottants comme dans cet exemple.