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. Оновлення : Reader Майкл Холл пише з демо-версією, де це може бути пов’язано з використанням властивостей long-hand. Здається, Firefox підтримує цю концепцію, якщо ви використовуєте лише скорочення.
Але альфа-маски, здається, чудово працюють. Як і в растровій графіці, яка використовує фактичну альфа-прозорість. Подобається це:
І лише для підтвердження аргументу, кольорову анімацію ви можете побачити через маску:
mask-image
Властивість також може бути використаний безпосередньо всередині елементів SVG. Як перевірити цю еліптичну маску, яка також має розмитий фільтр:
Здається, ви могли б зачепити цю маску SVG і застосувати її до інших елементів за допомогою, mask-image: url(#mask);
але я не вважаю, що це насправді працює. Він працює лише в SVG і має неприємний побічний ефект - повністю стирає зображення, якщо використовується поза SVG.
Підтримка браузера
Дані про підтримку веб-переглядача подані компанією Caniuse, яка містить більше деталей. Цифра вказує на те, що браузер підтримує цю функцію на цій версії та вище.
Робочий стіл
Chrome | Firefox | IE | Край | Сафарі |
---|---|---|---|---|
91 * | 53 | Ні | 88 * | TP * |
Мобільний / планшетний
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0-14,4 * |