A mask
i CSS skjuler en del af elementet på.
.el ( mask-image: url(star.svg); )
Sig, at du havde et element med en fotografisk baggrund og en sort-hvid SVG-grafik, der kunne bruges som en maske, som denne:


Du kan indstille billedet som a background-image
og masken som et mask-image
på det samme element og få noget som dette:
Masker deler meget til fælles med baggrunde, idet du kan dimensionere dem, placere dem og gentage dem og lignende ligesom baggrunde. Se de relaterede egenskaber nedenfor. Men her er en anden interessant ting ved masker, som de deler med baggrunde: de kan være gradienter.
Her er den samme baggrundsgrafik, kun med en linear-gradient
maske, der dækker den, hvilket gør toppen gennemsigtig, der falmer bunden, som slet ikke er gennemsigtig:
Det fungerer, fordi toppen af det linear-gradient
er transparent
. Jeg ville have antaget, at det ville fungere, hvis det var white
så godt, som det mask-type
var luminance
, men det ser ikke ud til at fungere i nogen browser for mig.
Når vi taler om luminance
masker, ser det ikke ud til at fungere for billeder som masker, der er et rasterformat som JPG.webp eller PNG for mig. Opdatering : Reader Micheal Hall skriver ind med en demo, hvor det kan have noget at gøre med at bruge de lange håndegenskaber. Firefox ser ud til at understøtte dette koncept, hvis du kun bruger stenografien.
Men alfamasker ser ud til at fungere fint. Som i rastergrafik, der bruger faktisk alfa-gennemsigtighed. Sådan her:


Og bare for at bevise et punkt, en farveanimation, du kan se gennem masken:
Den mask-image
egenskab kan også anvendes direkte i SVG elementer. Ligesom tjek denne elliptiske maske, der også har et sløret filter:
Det ser lidt ud som om du kunne fange den SVG-maske og anvende den på andre elementer med, mask-image: url(#mask);
men jeg finder ikke, at det faktisk fungerer. Det fungerer kun inden for SVG og har en grim bivirkning ved helt at slette et billede, hvis det bruges uden for SVG.
Browsersupport
Denne browsersupportdata er fra Caniuse, som har flere detaljer. Et tal angiver, at browseren understøtter funktionen i den version og opefter.
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
91 * | 53 | Ingen | 88 * | TP * |
Mobil / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0-14,4 * |