Un mask
in CSS nasconde una parte dell'elemento a cui viene applicata.
.el ( mask-image: url(star.svg); )
Supponi di avere un elemento con uno sfondo fotografico e una grafica SVG in bianco e nero da utilizzare come maschera, come questa:


Puoi impostare l'immagine come a background-image
e la maschera come a mask-image
sullo stesso elemento e ottenere qualcosa del genere:
Le maschere hanno molto in comune con gli sfondi in quanto è possibile ridimensionarle, posizionarle e ripeterle e simili, proprio come gli sfondi. Vedere le proprietà correlate di seguito. Ma ecco un'altra cosa interessante delle maschere che condividono con gli sfondi: possono essere gradienti.
Ecco la stessa grafica di sfondo, solo con una linear-gradient
maschera che la copre, che rende la parte superiore trasparente sbiadendo la parte inferiore che non è affatto trasparente:
Funziona perché la parte superiore di linear-gradient
è transparent
. Avrei pensato che avrebbe funzionato se fosse stato white
così lungo quanto lo mask-type
era luminance
, ma per me non sembra funzionare in nessun browser.
Parlando di luminance
maschere, questo non sembra funzionare per immagini-come-maschere che sono un formato raster come JPG.webp o PNG per me. Aggiornamento : il lettore Micheal Hall scrive con una demo in cui potrebbe avere qualcosa a che fare con l'utilizzo delle proprietà a mano lunga. Firefox sembra supportare questo concetto se usi solo l'abbreviazione.
Ma le maschere alfa sembrano funzionare bene. Come nella grafica raster che utilizza la trasparenza alfa effettiva. Come questo:


E solo per dimostrare un punto, un'animazione a colori che puoi vedere attraverso la maschera:
La mask-image
proprietà può essere utilizzata anche direttamente all'interno degli elementi SVG. Ad esempio, dai un'occhiata a questa maschera ellittica che ha anche un filtro sfocato:
Sembra che potresti impigliare quella maschera SVG e applicarla ad altri elementi, mask-image: url(#mask);
ma non trovo che funzioni davvero. Funziona solo all'interno di SVG e ha il brutto effetto collaterale di cancellare completamente un'immagine se usata al di fuori dell'SVG.
Supporto browser
Questi dati di supporto del browser provengono da Caniuse, che ha più dettagli. Un numero indica che il browser supporta la funzione a quella versione e successive.
Desktop
Cromo | Firefox | IE | Bordo | Safari |
---|---|---|---|---|
91 * | 53 | No | 88 * | TP * |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14,0-14,4 * |