A mask
w CSS ukrywa zastosowaną część elementu.
.el ( mask-image: url(star.svg); )
Załóżmy, że masz element z fotograficznym tłem i czarno-białą grafiką SVG do użycia jako maska, na przykład:
Możesz ustawić obraz jako a, background-image
a maskę jako a mask-image
na tym samym elemencie i uzyskać coś takiego:
Maski mają wiele wspólnego z tłami, ponieważ można je zmieniać, ustawiać, powtarzać i tak jak tła. Zobacz powiązane właściwości poniżej. Ale jest jeszcze jedna interesująca rzecz dotycząca masek, które dzielą z tłem: mogą to być gradienty.
Oto ta sama grafika tła, tylko z linear-gradient
zakrywającą ją maską, która sprawia, że górna część jest przezroczysta, blaknie, a spód nie jest w ogóle przezroczysty:
To działa, ponieważ górna część linear-gradient
jest transparent
. Przypuszczałem, że zadziała, gdyby było white
tak długo, jak mask-type
było luminance
, ale to nie wydaje się działać w żadnej przeglądarce dla mnie.
Mówiąc o luminance
maskach, to wydaje się nie działać w przypadku obrazów-masek, które są dla mnie w formacie rastrowym, takim jak JPG.webp lub PNG. Aktualizacja : Czytelnik Micheal Hall pisze, przedstawiając demo, w którym może to mieć coś wspólnego z używaniem właściwości odręcznych. Wydaje się, że Firefox obsługuje tę koncepcję, jeśli używasz tylko skrótu.
Ale maski alfa wydają się działać dobrze. Podobnie jak w przypadku grafiki rastrowej, która wykorzystuje rzeczywistą przezroczystość alfa. Lubię to:
Aby to udowodnić, kolorowa animacja, którą można zobaczyć przez maskę:
mask-image
Nieruchomość może być również stosowany bezpośrednio wewnątrz elementów SVG. Na przykład sprawdź tę eliptyczną maskę, która ma również rozmyty filtr:
Wygląda na to, że możesz złapać tę maskę SVG i zastosować ją do innych elementów, mask-image: url(#mask);
ale uważam, że to nie działa. Działa tylko w SVG i ma nieprzyjemny efekt uboczny polegający na całkowitym wymazaniu obrazu, jeśli jest używany poza SVG.
Wsparcie przeglądarki
Te dane dotyczące obsługi przeglądarek pochodzą od Caniuse, który zawiera więcej szczegółów. Liczba wskazuje, że przeglądarka obsługuje tę funkcję w tej wersji i nowszych.
Pulpit
Chrom | Firefox | TO ZNACZY | Brzeg | Safari |
---|---|---|---|---|
91 * | 53 | Nie | 88 * | TP * |
Telefon komórkowy / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14, 0-14, 4 * |