Уласцівасць mask-composite

Уласцівасць mask-composite дазваляє камбінаваць некалькі масак, якія ўжываюцца да аднаго элемента. Яна вызначае, як будуць узаемадзейнічаць паміж сабой розныя маскі пры іх накладанні.

Сінтаксіс

cssселектар {
  mask-composite: <compositing-operator>#;
}

Значэнні

Значэнне Апісанне
add Вынік - аб'яднанне ўсіх масак (па змаўчанні).
subtract Другая маска аднімаецца ад першай.
intersect Адлюстроўваецца толькі вобласць перасячэння масак.
exclude Адлюстроўваюцца вобласці, якія не з'яўляюцца агульнымі для масак.

Прыклад . Рэжым add

Аб'яднанне двух масак (сэрца і стрэлка):

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

Результат:

Прыклад . Рэжым subtract

Адніманне стрэлкі ад сэрца:

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

Результат:

Прыклад . Рэжым intersect

Адлюстраванне толькі вобласці перасячэння масак:

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

Результат:

Прыклад . Рэжым exclude

Адлюстраванне вобласцей, якія не з'яўляюцца агульнымі:

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

Результат:

Прыклад . Камбінацыя з градыентамі

Выкарыстанне з градыентнымі маскамі:

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

Результат:

Глядзіце таксама

  • уласцівасць mask-image,
    задае выявы для масак
  • уласцівасць mask,
    скарачэнне для ўсіх уласцівасцяў маскавання
  • уласцівасць mask-mode,
    вызначае рэжым накладання маскі
  • уласцівасць mix-blend-mode,
    вызначае рэжым накладання элементаў