Aller au contenu

Margin

La propriété margin définit un espace vide devant être respecté autour d'un élément, bref une marge. Par défaut, cette propriété à une valeur de 0 permettant aux éléments de s'afficher un à la suite de l'autre sans espace vide** (collés un à l'autre)**, mais elle accepte l'ensemble des unités de mesure CSS.

Note

Contrairement à padding, margin accepte les valeurs négatives.

Lorsqu'une seule valeur est fournie, celle-ci est appliquée aux 4 côtés de l'élément.

Dans l'exemple suivant, remarquez comment le changement de margin affecte l'espace autour du carré 2.

Warning

Les éléments aillant un display: inline (span, a, etc.) ne sont pas affectés par les marges verticales ↕️ par défaut.

Sous-propriétés

Pour plus de contrôle, il est possible d'attribuer une valeur différente à chaque côté en utilisant les sous-propriétés suivantes:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left Par exemple:

Syntaxe courte

Il est aussi possible d'attribuer les 4 côtés avec la syntaxe courte en les spécifiant un après l'autre en commençant par le haut et en tourant dans le sens des aiguilles d'une montre ⌚️ (top, right, bottom et left).

Par exemple:

Syntaxe courte à deux valeurs

Lorsque seulement deux valeurs sont spécifiées la première est utilisée afin de déterminer la marge verticale ↕️ (top et bottom) et la deuxième la marge horizontale ↔️ **(left et right). ** Par exemple:

Alignement horizontal ↔️

Les marges sont régulièrement utilisées afin de centrer horizontalement ↔️ des éléments dans leurs parents. Pour ce faire, il suffit d'attribuer la valeur auto aux marges de gauche et de droite.

Note

Cette technique de centrage est généralement utilisée avec la syntaxe à deux valeurs, soit margin: 0 auto;

Danger

ERREUR FRÉQUENTE Pour centrer horizontalement un élément avec la propriété margin et la valeur auto, un élément doit être en display: block

Combinaison de marges

À l'occasion, certaines marges sont combinées. C'est ce que les anglophones appellent "margin collapse". Ce comportement peut paraître étrange à première vue, mais il respecte le concept de marge qui est de générer un espace vide entre un élément et ceux l'entourant.

L'exemple le plus commun est celui des paragraphes (p) qui ont un margin-top et un margin-bottom équivalent à la hauteur d'une lettre (1em), soit une ligne. Si une image est insérée après un paragraphe, le margin-bottom de ce dernier s'assure qu'un espace équivalent à une ligne les sépare. Cependant, que se passe-t-il lorsque deux paragraphes se suivent?

Un espace équivalent à une seule ligne les sépare, car leurs marges sont combinées plutôt qu'additionnées.

Cependant, ce ne sont pas toutes les marges qui sont combinées. Seulement celles verticales ↕️.