Свойство mask-image

Свойство mask-image позволяет задать изображение, которое будет использоваться в качестве маски для элемента. Маска определяет, какие части элемента будут видны, а какие - скрыты. В качестве маски можно использовать SVG, PNG изображения или градиенты.

Синтаксис

cssселектор {
  mask-image: none | <image> | <url>;
}

Значения

Значение Описание
none Отключает маскирование (значение по умолчанию).
url() Путь к изображению-маске (SVG, PNG).
linear-gradient() Линейный градиент в качестве маски.
radial-gradient() Радиальный градиент в качестве маски.

Пример . Использование SVG в качестве маски

Наложим SVG-изображение сердечка в качестве маски на картинку:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: url("heart.svg");
  mask-position: center;
  mask-size: 300px;
  mask-repeat: no-repeat;
}

Результат:

Пример . Использование градиента в качестве маски

Применим линейный градиент в качестве маски для элемента:

html<div id="elem"></div>
css#elem {
  width: 500px;
  height: 300px;
  background: linear-gradient(45deg, red, blue);
  mask-image: linear-gradient(to right, transparent, black);
}

Результат:

Пример . Использование SVG-элемента в качестве маски

Создадим маску с помощью SVG-элемента и применим её к изображению:

html<img id="image" src="image.jpg">
<svg width="0" height="0">
  <mask id="mask">
    <path d="M150 15L183 111L285 111L204 171L237 267L150 216L63 267L96 171L15 111L117 111Z" fill="white"/>
  </mask>
</svg>
css#image {
  width: 500px;
  height: 281px;
  mask-image: url(#mask);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

Результат:

Смотрите также

  • свойство mask-position,
    определяет положение маски относительно элемента
  • свойство mask-size,
    определяет размер маски
  • свойство mask-repeat,
    определяет повторение маски
  • свойство mask-mode,
    определяет как маска взаимодействует с фоном
  • свойство mask,
    сокращение для всех свойств маскирования