Egenskaben mask-composite

Egenskaben mask-composite gør det muligt at kombinere flere masker, der anvendes på ét element. Den definerer, hvordan forskellige masker vil interagere med hinanden, når de overlappes.

Syntaks

cssselektor {
  mask-composite: <compositing-operator>#;
}

Værdier

Værdi Beskrivelse
add Resultatet er en forening af alle masker (standard).
subtract Den anden maske trækkes fra den første.
intersect Kun overlappens område af maskerne vises.
exclude Områder, der ikke er fælles for maskerne, vises.

Eksempel . Tilstanden add

Forening af to masker (hjerte og pil):

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    200px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: add;
}

Результат:

Eksempel . Tilstanden subtract

Subtrahering af pilen fra hjertet:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    170px 80px;
  mask-size: 
    250px,
    120px;
  mask-repeat: no-repeat;
  mask-composite: subtract;
}

Результат:

Eksempel . Tilstanden intersect

Viser kun overlappens område af maskerne:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: intersect;
}

Результат:

Eksempel . Tilstanden exclude

Viser områder, der ikke er fælles for maskerne:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: exclude;
}

Результат:

Eksempel . Kombination med gradienter

Brug med gradientmasker:

html<div id="gradient-box"></div>
css#gradient-box {
  width: 400px;
  height: 400px;
  background: linear-gradient(45deg, red, yellow, green, blue);
  mask-image: 
    radial-gradient(circle at 30% 30%, black 40%, transparent 70%),
    radial-gradient(circle at 70% 70%, black 40%, transparent 70%);
  mask-composite: exclude;
}

Результат:

Se også

  • egenskaben mask-image,
    angiver billeder til masker
  • egenskaben mask,
    forkortelse for alle maskingsegenskaber
  • egenskaben mask-mode,
    definerer maskens blandingstilstand
  • egenskaben mix-blend-mode,
    definerer blandingstilstanden for elementer