Questo può essere fatto con i CSS mascheramento, anche se purtroppo il supporto del browser è davvero male (credo WebKit solo).
http://jsfiddle.net/uw1mu81k/1/
-webkit-mask-box-image: url(http://yourimagehere);
Perché l'immagine è tutto bianco, è un candidato perfetto per il mascheramento. Il modo in cui la maschera funziona è che ovunque l'immagine sia bianca, l'elemento originale viene mostrato come normale, dove nero (o trasparente) l'elemento originale non viene mostrato. Qualunque cosa nel mezzo ha un certo livello di trasparenza.
EDIT:
Si può anche arrivare a questo lavoro in Firefox con l'aiuto di lieve svg
.
http://jsfiddle.net/uw1mu81k/4/
div {
width: 50px;
height: 50px;
mask: url(#mymask);
-webkit-mask-box-image: url(http://www.clker.com/cliparts/F/5/I/M/f/U/running-icon-white-on-transparent-background-md.png);
}
<div style="background-color: red;"></div>
<div style="background-color: blue;"></div>
<div style="background-color: green;"></div>
<div style="background-color: orange;"></div>
<div style="background-color: purple;"></div>
<svg height="0" width="0">
<mask id="mymask">
<image id="img" xlink:href="http://www.clker.com/cliparts/F/5/I/M/f/U/running-icon-white-on-transparent-background-md.png" x="0" y="0" height="50px" width="50px" />
</mask>
</svg>
fonte
2015-03-26 15:18:52
si può utilizzare un colore al posto del nero/bianco/grigio? Se è così, allora puoi usare la tonalità ruotare per cambiare il colore. –
So che la rotazione della tonalità può cambiare un colore di un'immagine (già colorata), ma ho bisogno di usare un'immagine bianca per iniziare. –
L'opzione SVG è un'opzione? –