A mask
в CSS скрывает часть элемента, к которому применяется.
.el ( mask-image: url(star.svg); )
Допустим, у вас есть элемент с фотографическим фоном и черно-белое изображение SVG для использования в качестве маски, например:
Вы можете установить изображение как a background-image
и маску как a mask-image
на одном элементе и получить что-то вроде этого:
Маски имеют много общего с фоном в том, что вы можете изменять их размер, размещать, повторять и т. Д., Как фон. См. Соответствующие свойства ниже. Но вот еще одна интересная особенность масок, которую они разделяют с фоном: они могут быть градиентами.
Вот тот же фоновый рисунок, только с linear-gradient
маской, покрывающей его, которая делает верх прозрачным, затемняет нижний, который совсем не прозрачен:
Это работает, потому что наверху linear-gradient
есть transparent
. Я бы предположил, что это сработает, если бы оно было white
таким же длинным, как mask-type
было luminance
, но, похоже, это не работает ни в одном браузере для меня.
Говоря о luminance
масках, мне кажется, что это не работает для изображений-масок в растровом формате, таком как JPG.webp или PNG. Обновление : читатель Майкл Холл записывает демонстрацию, где это может иметь какое-то отношение к использованию свойств длинной руки. Кажется, что Firefox поддерживает эту концепцию, если вы используете только сокращение.
Но альфа-маски, похоже, работают нормально. Как в растровой графике, использующей фактическую альфа-прозрачность. Так:
И чтобы доказать свою точку зрения, цветная анимация, которую вы можете увидеть через маску:
mask-image
Свойство также может быть использован непосредственно внутри элементов SVG. Например, посмотрите на эту эллиптическую маску, которая также имеет размытый фильтр:
Похоже, что вы можете зацепить эту маску SVG и применить ее к другим элементам, mask-image: url(#mask);
но я не считаю, что это действительно работает. Он работает только в SVG и имеет неприятный побочный эффект полного стирания изображения при использовании вне SVG.
Поддержка браузера
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
91 * | 53 | Нет | 88 * | TP * |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0–14,4 * |