margin-left
===========

La propriété CSS **`margin-left`** d'un élément définit l'espace horizontal à gauche qui formera la zone de marge (en-US) à 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
------------------

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 longueur \*/
/\* 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 \*/

/\* 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 cette propriété 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, exprimée comme une valeur fixe.

`<percentage>`

La taille de la marge exprimée avec un pourcentage relatif à la dimension du bloc englobant sur l'axe en ligne (qui correspond à la largeur pour une langue écrite horizontalement, voir `writing-mode`).

`auto`

Un mot-clé qui indique que la marge gauche s'adapte à l'espace restant. Cet espace est principalement défini par le mode de disposition utilisé. Si `margin-left` et `margin-right` valent toutes les deux `auto`, m'espace calculé sera réparti de façon équitable. Le tableau suivant précise 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 initiale | `0` |
| 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ée | non |
| Pourcentages | se rapporte à la largeur du bloc contenant |
| Valeur calculée | le pourcentage tel que spécifié ou une longueur absolue |
| Type d'animation | une longueur |

Syntaxe formelle
----------------
```

margin-left =   
  <length-percentage>  |  
  auto                   
  
<length-percentage> =   
  <length>      |  
  <percentage>    
  
```

Exemples
--------

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

### CSS


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

### 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>
```

### Résultat

Spécifications
--------------

| Specification |
| --- |
| CSS Box Model Module Level 3 # margin-physical |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Les autres propriétés physiques pour les marges :
    + `margin-top`
    + `margin-right`
    + `margin-bottom`
    + La propriété raccourcie `margin` qui synthétise les 4
* Les propriétés logiques pour les marges :
    + `margin-block-start`
    + `margin-block-end`
    + `margin-inline-start`
    + `margin-inline-end`
    + Les propriétés raccourcies pour les deux axes :
        - `margin-block`
        - `margin-inline`