Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

margin-left

Baseline Widely available *

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.

La propriété CSS margin-left d'un élément définit l'espace horizontal à gauche qui formera la zone de marge à gauche de l'élément. On peut avoir une marge gauche négative qui rapproche l'élément de ses voisins ou une marge positive qui l'en écarte.

Exemple interactif

margin-left: 1em;
margin-left: 10%;
margin-left: 10px;
margin-left: 0;
<section id="default-example">
  <div id="container">
    <div class="col"></div>
    <div class="col transition-all" id="example-element"></div>
    <div class="col"></div>
  </div>
</section>
#container {
  width: 300px;
  height: 200px;
  display: flex;
  align-content: flex-start;
  justify-content: flex-start;
}

.col {
  width: 33.33%;
  border: solid #5b6dcd 10px;
  background-color: rgb(229 232 252 / 0.6);
  flex-shrink: 0;
}

#example-element {
  border: solid 10px #ffc129;
  background-color: rgb(255 244 219 / 0.6);
}

Les marges verticales de deux boîtes adjacentes peuvent fusionner entre elles. C'est ce qu'on appelle la fusion de marges.

Dans certains cas où la largeur est sur-contrainte (autrement dit quand width, margin-left, border, padding, la taille de la zone de contenu et margin-right sont toutes définies), margin-left est ignorée. La valeur calculée sera la même que si auto avait été utilisée.

Syntaxe

css
/* Valeurs de type <length> */
margin-left: 10px; /* Une longueur absolue */
margin-left: 1em; /* Une longueur absolue relative à la taille du texte */
margin-left: 5%; /* Une marge dont la taille est relative à la largeur du bloc englobant */
margin-left: anchor-size(self-inline);
margin-left: calc(anchor-size(--my-anchor width, 20px) / 4);

/* Valeur avec un mot-clé */
margin-left: auto;

/* Valeurs globales */
margin-left: inherit;
margin-left: initial;
margin-left: revert;
margin-left: revert-layer;
margin-left: unset;

La valeur de la propriété margin-left peut être le mot-clé auto, une longueur (<length>) ou un pourcentage (<percentage>). La valeur peut être positive, nulle ou négative.

Valeurs

<length>

La taille de la marge en valeur fixe.

<percentage>

La taille de la marge en pourcentage, relative à la taille en ligne (largeur dans une langue horizontale, définie par writing-mode) du bloc englobant.

auto

La marge gauche reçoit une part de l'espace horizontal inutilisé, déterminée principalement par le mode de disposition utilisé. Si les valeurs de margin-left et margin-right sont toutes deux auto, l'espace calculé est réparti équitablement. Ce tableau résume les différents cas :

Valeur de display Valeur de float Valeur de position Valeur calculée pour auto Commentaires
inline, inline-block, inline-table N'importe laquelle static ou relative 0 Disposition en ligne
block, inline, inline-block, block, table, inline-table, list-item, table-caption N'importe laquelle static ou relative 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer l'élément au sein de l'élément parent. Disposition en bloc
block, inline, inline-block, block, table, inline-table, list-item, table-caption left ou right static ou relative 0 Disposition en bloc avec les éléments flottants
N'importe quelle table-*, sauf table-caption N'importe laquelle N'importe laquelle 0 Les éléments table-* n'ont pas de marge, il faut utiliser border-spacing à la place.
N'importe laquelle, sauf flex, inline-flex, ou table-* N'importe laquelle fixed ou absolute 0 sauf si margin-left et margin-right valent auto. Dans ce cas, la valeur utilisée sera celle qui permet de centrer la boîte de bordure dans la zone de largeur disponible si elle fixée. Positionnement absolu.
flex, inline-flex N'importe laquelle N'importe laquelle 0, sauf s'il reste de l'espace libre. Dans ce cas, l'espace restant sera distribué de façon équitable entre toutes les marges avec auto. Boîtes flexibles.

Définition formelle

Valeur initiale0
Applicabilitétous les éléments exceptés ceux dont les types display pour les tableaux ne sont pas table-caption, table et inline-table. S'applique aussi à ::first-letter.
Héritéenon
Pourcentagesse rapporte à la largeur du bloc contenant
Valeur calculéele pourcentage tel que spécifié ou une longueur absolue
Type d'animationune longueur

Syntaxe formelle

margin-left = 
<length-percentage> |
auto |
<anchor-size()>

<length-percentage> =
<length> |
<percentage>

<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )

<anchor-name> =
<dashed-ident>

<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline

Exemples

Définir la marge de gauche en pourcentage

Les valeurs en pourcentage pour margin-left sont relatives à la taille en ligne du conteneur.

HTML

html
<p>
  Un grand rosier se trouvait à l'entrée du jardin&nbsp;; les roses qu'il
  portait étaient blanches, mais trois jardiniers étaient en train de les
  peindre en rouge.
</p>
<p class="exemple">
  Alice s'avança pour les regarder, et, au moment où elle approchait, elle en
  entendit un qui disait&nbsp;: «&nbsp;Fais donc attention, Cinq, et ne
  m'éclabousse pas ainsi avec ta peinture.&nbsp;»
</p>
<p>
  «&nbsp;Ce n'est pas de ma faute,&nbsp;» dit Cinq d'un ton bourru, «&nbsp;c'est
  Sept qui m'a poussé le coude.&nbsp;»
</p>

CSS

css
.exemple {
  margin-left: 50%;
}

Résultat

Spécifications

Specification
CSS Box Model Module Level 3
# margin-physical

Compatibilité des navigateurs

Voir aussi