A mask
i CSS döljer en del av elementet tillämpas på.
.el ( mask-image: url(star.svg); )
Anta att du hade ett element med fotografisk bakgrund och en svartvit SVG-grafik att använda som en mask, så här:


Du kan ställa in bilden som a background-image
och masken som en mask-image
på samma element och få något så här:
Masker delar mycket gemensamt med bakgrunder genom att du kan dimensionera dem, placera dem och upprepa dem och liknande precis som bakgrunder. Se relaterade egenskaper nedan. Men här är en annan intressant sak om masker som de delar med bakgrunder: de kan vara lutningar.
Här är samma bakgrundsbild, bara med en linear-gradient
mask som täcker den, vilket gör att den övre transparenta bleknar botten som inte är transparent alls:
Det fungerar för att toppen av den linear-gradient
är transparent
. Jag skulle ha antagit att det skulle fungera om det var white
lika bra som det mask-type
var luminance
, men det verkar inte fungera i någon webbläsare för mig.
På tal om luminance
masker verkar det inte fungera för bilder-som-masker som är ett rasterformat som JPG.webp eller PNG för mig. Uppdatering : Läsaren Micheal Hall skriver in med en demo där det kan ha något att göra med att använda de långa handegenskaperna. Firefox verkar stödja detta koncept om du bara använder stenografi.
Men alfamaskar verkar fungera bra. Som i rastergrafik som använder faktisk alfa-transparens. Så här:


Och bara för att bevisa en punkt, en färganimering som du kan se genom masken:
Den mask-image
egenskapen kan också användas direkt inuti SVG element. Som att kolla in den här elliptiska masken som också har ett suddigt filter:
Det ser ut som om du kan häva den SVG-masken och applicera den på andra element med mask-image: url(#mask);
men jag tycker inte att det faktiskt fungerar. Det fungerar bara inom SVG och har en otäck bieffekt av att helt radera en bild om den används utanför SVG.
Webbläsarstöd
Denna webbläsares supportdata kommer från Caniuse, som har mer detaljer. Ett nummer indikerar att webbläsaren stöder funktionen i den versionen och uppåt.
Skrivbord
Krom | Firefox | IE | Kant | Safari |
---|---|---|---|---|
91 * | 53 | Nej | 88 * | TP * |
Mobil / surfplatta
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0-14,4 * |