Вот демонстрация, которая показывает, что это можно сделать, http://duopixel.com/stack/test.html, проверьте в webkit и Firefox.
Объяснение: единственный способ замаскировать изображение в Firefox - через маски svg: https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content,
Это можно сделать более элегантно (с помощью svg из внешнего источника), но это облегчает понимание.
Фактический код довольно прост, просто ...
mask: url(#id);
Или, если вы хотите сослаться на внешний источник:
mask: url(test.html#id);
Кроме того, кодна моем сервере, потому что вы должны использовать HTML как HTML, в противном случае Firefox игнорирует маску.Это можно сделать через .htaccess следующим образом:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
RewriteCond %{REQUEST_URI} \.html$
RewriteCond %{THE_REQUEST} HTTP/1\.1
RewriteRule .* - [T=application/xhtml+xml]
jsfiddle не обслуживает xhtml / application