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

Propriété CSS margin-trim

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Want more browser support for this feature? Tell us why.

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété CSS margin-trim permet à un conteneur de rogner les marges de ses éléments enfants qui sont adjacentes aux bords du conteneur.

Syntaxe

css
margin-trim: none;
margin-trim: block;
margin-trim: block-start;
margin-trim: block-end;
margin-trim: inline;
margin-trim: inline-start;
margin-trim: inline-end;

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

Valeurs

none

Les marges ne sont pas rognées par le conteneur.

block

Les marges des enfants de type bloc qui sont adjacentes aux bords du conteneur sont rognées à zéro sans affecter les marges du conteneur lui-même.

block-start

La marge du premier enfant de type bloc avec le bord du conteneur est rognée à zéro.

block-end

La marge du dernier enfant de type bloc avec le bord du conteneur est rognée à zéro.

inline

Les marges des enfants en ligne qui sont adjacentes aux bords du conteneur sont rognées à zéro, sans affecter l'espacement au début et à la fin de la ligne.

inline-start

La marge entre le bord du conteneur et le premier enfant en ligne est rognée à zéro.

inline-end

La marge entre le bord du conteneur et le dernier enfant en ligne est rognée à zéro.

Définition formelle

Valeur initialenone
ApplicabilitéConteneurs de type bloc et conteneurs multi-colonnes. S'applique aussi à ::first-letter.
Héritéenon
Valeur calculéecomme défini
Type d'animationdiscrète

Syntaxe formelle

margin-trim = 
none |
[ block || inline ] |
[ block-start || inline-start || block-end || inline-end ]

Exemples

Utilisation simple

Une fois la prise en charge de cette propriété implémentée, elle fonctionnera probablement ainsi :

Lorsque vous avez un conteneur avec des enfants en ligne et que vous souhaitez mettre une marge entre chaque enfant sans que cela n'interfère avec l'espacement à la fin de la ligne, vous pourriez faire quelque chose comme ceci :

css
article {
  background-color: red;
  margin: 20px;
  padding: 20px;
  display: inline-block;
}

article > span {
  background-color: black;
  color: white;
  text-align: center;
  padding: 10px;
  margin-right: 20px;
  margin-left: 30px;
}

Le problème ici est que vous vous retrouveriez avec 20px de trop à droite de la ligne, donc vous pourriez faire ceci pour corriger :

css
span:last-child {
  margin-right: 0;
  margin-left: 0;
}

C'est pénible d'avoir à écrire une autre règle pour obtenir ce résultat, et ce n'est pas très flexible. À la place, margin-trim pourrait corriger cela :

css
article {
  margin-trim: inline-end;
  /* … */
}

De même, pour supprimer la marge gauche avec le bord du conteneur :

css
article {
  margin-trim: inline-start;
  /* … */
}

Spécifications

Spécification
CSS Box Model Module Level 4
# margin-trim

Compatibilité des navigateurs

Voir aussi