Masquer (masking) et découper (clipping) permettent de masquer certaines parties d'un élément. Il existe pourtant des différences entre les deux.
Alors que l'écrêtage (ou découpage) définit une région de rognage et coupe par conséquent tout ce qui ne fait pas partie de la région, le masquage va, quant à lui, filtrer les parties visibles d'un élément.
Déjà présents dans SVG, ces deux notions sont apparues dans CSS Masking Module Level 1 avec les propriétés clip-path et mask.
Le découpage avec clip-path
La propriété clip-path peut être appliquée à n'importe quel élément HTML soit en utilisant un chemin défini avec une URL qui fait référence à un SVG externe ou en ligne, soit à l'aide de formes géométriques introduites avec les formes CSS.
On peut définir la propriété clip-path avec une ou plusieurs des valeurs suivantes :
-Avec un chemin url()
Cette url de référence contiendra un chemin de rognage (élément SVG clipPath), comme sur l'exemple ci-dessous :
Exemple ci-dessous avec la fonction polygon(). J'ai découpé le ciel et la mer, ne laissant apparaître que l'herbe au premier plan (notez la perfection du détourage 😃).
La propriété clip-path peut également prendre des valeurs de boîte:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor venenatis volutpat. Curabitur iaculis dapibus est in commodo. Donec ut rutrum arcu, at malesuada leo. Sed lobortis convallis elit, nec fringilla eros pretium eu. Nunc iaculis nec ante nec dictum. Cras hendrerit, mi id pharetra pellentesque, velit nunc pretium turpis, sit amet imperdiet quam enim lobortis quam. Ut tincidunt molestie ullamcorper. Aliquam lorem tortor, pulvinar eget sem ac, vulputate ullamcorper arcu. Vestibulum cursus ullamcorper ultrices. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor venenatis volutpat. Curabitur iaculis dapibus est in commodo. Donec ut rutrum arcu, at malesuada leo. Sed lobortis convallis elit, nec fringilla eros pretium eu. Nunc iaculis nec ante nec dictum. Cras hendrerit, mi id pharetra pellentesque, velit nunc pretium turpis, sit amet imperdiet quam enim lobortis quam. Ut tincidunt molestie ullamcorper. Aliquam lorem tortor, pulvinar eget sem ac, vulputate ullamcorper arcu. Vestibulum cursus ullamcorper ultrices.
Support Firefox pour la plupart des valeurs.
Le masquage avec la propriété mask
La propriété mask permet d'afficher des parties sélectionnées d'un élément ou d'une image sur l'écran tout en masquant le reste.
Cette propriété est un raccourci pour les propriétés suivantes :
- mask-image
- mask-mode
- mask-repeat
- mask-position
- mask-clip
- mask-origin
- mask-size
- mask-composite
Par ailleurs, il existe deux types de masque :
- mask-type : luminance
- mask-type : alpha (ou transparent)
Exemples propriété mask-image
Avec dégradés CSS :
<img src="image.jpg" width="420" height="279" class="mask-image1" alt="Exemple avec masque dégradé">
.mask-image1 {
-webkit-mask-image: linear-gradient(to bottom, transparent 25%, black 75%);
mask-image: linear-gradient(to bottom, transparent 25%, black 75%);
}
Avec un chemin url :
<img src="image.jpg" width="420" height="279" class="mask-image2" alt="Exemple avec un chemin url">
-webkit-mask-image: url(image.png);
mask-image: url(image.png);
-webkit-mask-repeat: space;
mask-repeat: space;
-webkit-mask-size: 20px 20px;
mask-size: 20px 20px
Vous avez remarqué une faute, un oubli, un lien mort ? Vous ne comprenez pas un point précis de l'article ? Vous pouvez me contacter par mail (contact@guyom-design.com) et je vous aiderai si je le peux.