html - HTML 和 CSS 只能创建一个自动忽略图像透明区域的叠加层吗?

标签 html css

例如,它有一张透明背景的图片:

Enter image description here

我想在上面添加一个灰色覆盖层(例如,div 或 Canvas ...):

Enter image description here

但我希望叠加层自动忽略图像上的透明区域:

Enter image description here

纯 HTML 和 CSS(例如,通过 div、canvas...)可以做到这一点吗?

最佳答案

尝试叠加混合模式。或者乘以! (IE 或 Edge 不支持,感谢@Stilltorik)

.multiplied {
  background-color: blue;
  width:250px;
  height: 100px;
  margin-top: -100px;
  mix-blend-mode: overlay;
}
<div>
  <img src='/image/4yUEW.png'/>
  <div class='multiplied'></div>
</div>

关于html - HTML 和 CSS 只能创建一个自动忽略图像透明区域的叠加层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41180735/

相关文章:

css - 全宽页面 div

php - 包括 php "template"向下移动

javascript - 如何打开 url 链接作为弹出屏幕

Javascript 函数无法获取高度 css 属性

html - 如何使用 UL 制作水平站点地图?

隐藏 div 的 Javascript 代码不起作用(CSS @media 规则也不起作用)- 'cannot read property style of null'

html - 无法左对齐带有很棒图标的文本输入

javascript - 使用 JavaScript 更改链接标签的 href

python - Bsoup4 提取未被父元素包裹的子元素

css - 在 IntelliJ IDEA Ultimate 版本 14 中配置 LESS 编译器?