Điều này có thể được thực hiện với css mặt nạ, mặc dù không may hỗ trợ trình duyệt thực sự là xấu (Tôi tin webkit chỉ).
http://jsfiddle.net/uw1mu81k/1/
-webkit-mask-box-image: url(http://yourimagehere);
Bởi vì hình ảnh của bạn là tất cả màu trắng, nó là một ứng cử viên hoàn hảo cho mặt nạ. Cách mặt nạ hoạt động là bất cứ nơi nào hình ảnh có màu trắng, phần tử gốc được hiển thị như bình thường, nơi phần tử gốc màu đen (hoặc trong suốt) không được hiển thị. Bất cứ điều gì ở giữa đều có mức độ minh bạch.
EDIT:
Bạn cũng có thể có được điều này để làm việc trong FireFox với sự giúp đỡ nhỏ từ 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>
Nguồn
2015-03-26 15:18:52
Bạn có thể sử dụng màu thay vì đen/trắng/xám không? Nếu vậy, bạn có thể sử dụng màu sắc để thay đổi màu sắc. –
Tôi biết rằng xoay màu có thể thay đổi màu của hình ảnh (đã đầy màu sắc) nhưng tôi cần sử dụng hình ảnh màu trắng để bắt đầu. –
Có phải là tùy chọn SVG không? –