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.
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é 🟦.
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:
- mt
- mr
- mb
- ml
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.
Combinaison de marges
À l'occasion certaines marges sont combinées. C'est ce que les anglophones appellent "margin collapse". Ce comportement peut paraitre é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'assuere 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ée. Seulement celles verticales ↕️
En savoir plus Excellent billet de Josh W Comeau expliquant le margin collapse.