La propriété clip-path empêche une portion d'un élément d'être affichée en définissant une région de rognage. Seule une zone spécifique de l'élément sera affichée. La zone de rognage est un chemin défini avec une URL faisant référence à un SVG externe ou en ligne ou grâce à une fonction de forme comme circle().

Note : La propriété clip-path remplace la propriété clip désormais dépréciée.

Syntaxe

/* Valeurs avec un mot-clé */
clip-path: none;

/* Valeurs pointant vers une image */
/* Type <clip-source> */
clip-path: url(resources.svg#c1);

/* Valeurs de boîte */
clip-path: fill-box;
clip-path: stroke-box;
clip-path: view-box;
clip-path: margin-box;
clip-path: border-box;
clip-path: padding-box;
clip-path: content-box;

/* Valeurs géométriques            */
/* avec une notation fonctionnelle */
clip-path: inset(100px 50px);
clip-path: circle(50px at 0 100px);
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);

/* Combinaison boîte & géométrie */
clip-path: padding-box circle(50px at 0 100px);

/* Valeurs globales */
clip-path: inherit;
clip-path: initial;
clip-path: unset;

La propriété clip-path est définie avec une ou plusieurs des valeurs listées ci-après.

Valeurs

url()
Une URL qui fait référence à un élément contenant le chemin de rognage.
inset(), circle(), ellipse(), polygon()
Une fonction <basic-shape>. Une telle forme utilise la valeur <geometry-box> pour déterminer la taille et la position de la forme. Si aucune boîte de géométrie n'est indiquée, c'est la boîte de bordure (border-box) qui sera utilisée comme boîte de réference.
<geometry-box>
Si cette valeur est combinée avec une valeur <basic-shape>, elle définira la boîte de référence dans laquelle placer la forme. Si elle est utilisée seule, ce sont les bords de la boîte (ainsi que les éventuels coins arrondis définis avec border-radius) qui sont utilisés comme ligne de rognage. Cette composante peut prendre les valeurs suivante :
fill-box
La boîte englobant (bounding box) est utilisée comme boîte de référence.
stroke-box
La boîte de contour de la boîte englobante est utilisée comme boîte de référence.
view-box
La zone d'affichage SVG la plus proche est utilisée comme boîte de référence. Si un attribut viewBox est défini pour l'élément qui crée la zone d'affichage SVG, la boîte de référence est située à l'origine du système construit par viewBox et les dimensions de la boîte de référence sont les valeurs de hauteur et de largeur de l'attribut viewBox.
margin-box
La boîte de marge est utilisée comme boîte de référence
border-box
La boîte de bordure est utilisée comme boîte de référence
padding-box
La boîte de remplissage (padding) est utilisée comme boîte de référence
content-box
La boîte de contenu est utilisée comme boîte de référence.
none
Aucun chemin de rognage n'est créé.

Syntaxe formelle

<clip-source> | [ <basic-shape> || <geometry-box> ] | none


<clip-source> = <url>
<basic-shape> = <inset()> | <circle()> | <ellipse()> | <polygon()>
<geometry-box> = <shape-box> | fill-box | stroke-box | view-box


<inset()> = inset( <length-percentage>{1,4} [ round <border-radius> ]? )
<circle()> = circle( [ <shape-radius> ]? [ at <position> ]? )
<ellipse()> = ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )
<polygon()> = polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )
<shape-box> = <box> | margin-box


<length-percentage> = <length> | <percentage>
<shape-radius> = <length-percentage> | closest-side | farthest-side
<position> = [ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]
<fill-rule> = nonzero | evenodd
<box> = border-box | padding-box | content-box

Exemples

CSS

#clipped {
  margin-bottom: 20px;
  clip-path: url(#cross);
}

HTML

<img id="clipped" src="https://mdn.mozillademos.org/files/12668/MDN.svg"
    alt="MDN logo">
<svg height="0" width="0">
  <defs>
    <clipPath id="cross">
      <rect y="110" x="137" width="90" height="90"/>
      <rect x="0" y="110" width="90" height="90"/>
      <rect x="137" y="0" width="90" height="90"/>
      <rect x="0" y="0" width="90" height="90"/>
    </clipPath>
  </defs>
</svg>

<select id="clipPath">
  <option value="none">none</option>
  <option value="circle(100px at 110px 100px)">circle</option>
  <option value="url(#cross)" selected>cross</option>
  <option value="inset(20px round 20px)">inset</option>
</select>

Résultat

Spécifications

Spécification État Commentaires
CSS Masking Module Level 1
La définition de 'clip-path' dans cette spécification.
Candidat au statut de recommandation Extension aux élément HTML. clip-path remplace la propriété clip désormais dépréciée.
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
La définition de 'clip-path' dans cette spécification.
Recommendation Définition initiale (s'applique uniquement aux éléments SVG)

Valeur initialenone
Applicabilitétous les éléments ; en SVG, cela s'applique aux éléments conteneurs à l'exception des éléments defs et des éléments graphiques
Héritéenon
Pourcentagesrefer to reference box when specified, otherwise border-box
Médiavisuel
Valeur calculéecomme spécifié mais avec les valeurs url rendues absolues
Type d'animationoui, comme spécifié pour basic-shape, sinon, non
Ordre canoniquel'ordre unique et non-ambigu défini par la grammaire formelle

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple

55

24 -webkit-

Non3.5 Non42 Non
On SVG elements5515152 Oui242 Non
<basic-shape>55 Non

54

47 —?3

Non42 Non
inset()55 Non

54

473

Non42 Non
Animations55 Non49 Non42 Non
fill-box and stroke-box Non Non514 Non Non Non
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple55

55

Oui -webkit-

Non442 Non

6.0

Oui -webkit-

On SVG elements55551215242 Non6.0
<basic-shape>5555 Non

54

47 —?3

42 Non6.0
inset()5555 Non

54

473

42 Non6.0
Animations5555 Non4942 Non6.0
fill-box and stroke-box Non Non Non514 ? Non Non

1. Edge only supports clip paths defined by url().

2. Internet Explorer only supports clip paths defined by url().

3. From version 47: this feature is behind the layout.css.clip-path-shapes.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

4. This value was supported before Firefox 51, but as an alias to border-box.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, guv3n, teoli, Philippe_Lambotte
Dernière mise à jour par : SphinxKnight,