There are new CSS properties to accomplish this thing: blend-mode and background-blend-mode .
Currently, you wonβt be able to use them in any production environment, as they are very new and only Chrome Canary (experimental web browser) and Webkit Nightly are currently supported.
These properties are configured to work in much the same way as Photoshop blending modes, and allow you to set various modes as the values ββof these properties, such as overlay , screen , lighten , color-dodge , and, of course, multiply .. among others.
blend-mode will allow images (and possibly content? I havenβt heard anything to suggest that at the moment.) layered on top of each other to apply this blending effect.
background-blend-mode will be very similar, but it will be for background images (using background or background-image ), not the actual image elements.
EDIT: The next section becomes a little inappropriate as browser support grows. Check this graph to see which browsers support this: http://caniuse.com/#feat=css-backgroundblendmode
If you have the latest version of Chrome installed on your computer, you can see these styles in use by including some flags in your browser (just enter them in the address bar :)
chrome://flags/#enable-experimental-web-platform-features chrome://flags/
Turn on these bad guys and then check out this fiddle: http://jsfiddle.net/cqzJ5/ (If the styles are correctly included in your browser, the two images should be mixed so that the scene looks like it is under water)
Although this may not be the most legitimate answer at the moment due to almost completely nonexistent support for this feature, we can hope that modern browsers will use these properties in the near future, providing us with a really good and simple solution to this problem.
Some additional reading resources in blend modes and css properties: