A mask
i CSS skjuler en del av elementet brukes på.
.el ( mask-image: url(star.svg); )
Si at du hadde et element med fotografisk bakgrunn, og en svart-hvitt SVG-grafikk å bruke som en maske, slik:


Du kan sette bildet som en background-image
og masken som et mask-image
på samme element, og få noe sånt:
Masker har mye til felles med bakgrunner ved at du kan dimensjonere dem, plassere dem og gjenta dem og slikt akkurat som bakgrunner. Se relaterte egenskaper nedenfor. Men her er en annen interessant ting med masker som de deler med bakgrunn: de kan være graderinger.
Her er den samme bakgrunnsgrafikken, bare med en linear-gradient
maske som dekker den, noe som gjør toppen gjennomsiktig og blekner bunnen som ikke er gjennomsiktig:
Det fungerer fordi toppen av det linear-gradient
er transparent
. Jeg ville ha antatt at det ville fungere hvis det var white
like bra som det mask-type
var luminance
, men det ser ikke ut til å fungere i noen nettleser for meg.
Når vi snakker om luminance
masker, ser det ikke ut til å fungere for bilder som masker som er et rasterformat som JPG.webp eller PNG for meg. Oppdatering : Leseren Micheal Hall skriver inn med en demo der det kan ha noe å gjøre med å bruke de lange håndegenskapene. Firefox ser ut til å støtte dette konseptet hvis du bare bruker stenografi.
Men alfamasker ser ut til å fungere helt fint. Som i rastergrafikk som bruker faktisk alfa-gjennomsiktighet. Som dette:


Og bare for å bevise et poeng, en farge-animasjon du kan se gjennom masken:
Den mask-image
egenskap kan også brukes direkte på innsiden SVG elementer. Som å sjekke ut denne elliptiske masken som også har et uskarpt filter:
Det ser ut som om du kan fange den SVG-masken og bruke den på andre elementer med, mask-image: url(#mask);
men jeg finner ikke det faktisk fungerer. Det fungerer bare i SVG, og har en ekkel bivirkning av å helt slette et bilde hvis det brukes utenfor SVG.
Nettleserstøtte
Disse nettleserstøttedataene er fra Caniuse, som har flere detaljer. Et tall indikerer at nettleseren støtter funksjonen i den versjonen og oppover.
Desktop
Chrome | Firefox | DVS | Kant | Safari |
---|---|---|---|---|
91 * | 53 | Nei | 88 * | TP * |
Mobil / nettbrett
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0-14,4 * |