【发布时间】:2017-04-15 04:02:41
【问题描述】:
有人可以建议如何做到这一点:
我在网站上为客户使用了一张 PNG 图像。图像具有透明背景,图像的内容本质上是轮廓图。对于这个例子,可以说它是一个火柴人绘图。除了火柴人的轮廓外,一切都是透明的。
我想要做的是添加这个图像,无论是作为背景图像还是仅仅作为图像元素。并应用一个 CSS 叠加层,它只会为图像中的实际内容或“线条”着色。换句话说,Stickman 可以通过不会为背景着色的 CSS 覆盖将他的颜色从白色变为蓝色、红色、绿色等。
我知道我可以在 Photoshop 中执行此操作,但我正在尝试为此创建一个更动态的解决方案。这是为了允许图像的动态变化
【问题讨论】:
-
你可以使用
mix-blend-mode,虽然它没有最好的浏览器支持。使用相关图像发布代码 sn-p。 ....我实际上建议您创建一个 SVG。有了它,您可以轻松更改线条颜色,以及或多或少的完整浏览器支持(来自 IE9) -
感谢您的回复,我目前无法发布图片,因为这是我的客户徽标,他们还没有注册商标或其他任何东西,所以我被要求暂时保密!但是,如果有帮助,我将创建一个模型并稍后发回
-
我同意@LGSon,如果可以,请使用 SVG。否则,您可以在画布上绘制图像并操纵该画布来做任何您想做的事情。
-
同样在你可以用 SVG 做的花哨的事情还没有很好的浏览器支持时,
mask-image完全符合你的要求:developer.mozilla.org/en-US/docs/Web/CSS/mask-image
标签: html css overlay transparent