是否有可能创建与Photoshop中可用的Color Burn、Color Dodge、Soft Light等透明效果相同的透明效果?我知道CSS3中的“background-blend-mode”,但其支持有限。是否有一些方法可以在主要使用的浏览器中使其工作,包括IE9?也许可以通过类似于CSS3pie的某些黑客方式实现?
是否有可能创建与Photoshop中可用的Color Burn、Color Dodge、Soft Light等透明效果相同的透明效果?我知道CSS3中的“background-blend-mode”,但其支持有限。是否有一些方法可以在主要使用的浏览器中使其工作,包括IE9?也许可以通过类似于CSS3pie的某些黑客方式实现?
你提到了background-blend-mode
,没错 - 它是混合颜色的最佳方法之一,但惊喜吧,IE甚至在Edge中也不支持它,这令人遗憾。这篇精彩的文章列出了所有的blend-mode
选项和它们的效果,包括你提到的color-burn
和color-dodge
。
还有filter
,它被一些浏览器支持,但不被Internet Explorer/Edge支持。
Polyfills(兼容性插件)可以让我们更接近目标,但并不能完全解决问题。
Github上已经有一个Filter Polyfill,为filter
提供了IE6-9
的支持(其他主要浏览器已经支持它)。
blend-mode
则更为困难。虽然有兼容性插件可用,但它们通常不支持IE甚至不支持多种类型的blend-mode
。
那我们该怎么办呢?如果连兼容性插件都不能解决问题,那么就是时候放弃支持一个不被支持的特性,并使用完整功能的库,例如jquery
的插件。
一番研究后,我发现了Blend-Mode,它似乎在Internet Explorer上工作得还可以,尽管远非完美。
还有Pixastic库,它有许多其他功能,在IE9上似乎能正常工作,但在8或以下版本上会有困难。
这意味着什么?
基本上 - 我知道这不是你想要的答案 - 但根据我的研究,目前很难找到真正支持IE的解决方案。支持canvas
blend-mode
的支持几乎不存在,而这些插件的质量也难以保证。
你有两个选择 - 只在现代浏览器上使用这些技术,或者先使用类似Photoshop的程序处理图片,然后上传到你的Web服务器(因为Internet Explorer导致你失去了即时处理的能力)。
我希望我在这里的研究可以对你有所帮助。