Właściwość mask-composite

Właściwość mask-composite pozwala łączyć wiele masek stosowanych do jednego elementu. Określa, jak różne maski będą ze sobą współdziałać podczas ich nakładania.

Składnia

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

Wartości

Wartość Opis
add Wynik - połączenie wszystkich masek (domyślnie).
subtract Druga maska jest odejmowana od pierwszej.
intersect Wyświetlany jest tylko obszar przecięcia masek.
exclude Wyświetlane są obszary, które nie są wspólne dla masek.

Przykład . Tryb add

Połączenie dwóch masek (serce i strzałka):

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;
}

Результат:

Przykład . Tryb subtract

Odejmowanie strzałki od serca:

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;
}

Результат:

Przykład . Tryb intersect

Wyświetlanie tylko obszaru przecięcia masek:

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;
}

Результат:

Przykład . Tryb exclude

Wyświetlanie obszarów, które nie są wspólne:

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;
}

Результат:

Przykład . Kombinacja z gradientami

Użycie z maskami gradientowymi:

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;
}

Результат:

Zobacz też

  • właściwość mask-image,
    ustawia obrazy dla masek
  • właściwość mask,
    skrót dla wszystkich właściwości maskowania
  • właściwość mask-mode,
    określa tryb nakładania maski
  • właściwość mix-blend-mode,
    określa tryb mieszania elementów