You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CSS或属性实现SVG图标白色区域的透明覆盖效果?

无需修改SVG路径的镂空效果解决方案

你需要让SVG内的白色区域变为透明(挖空下方黑色像素,透出背景),可以通过以下CSS方案实现,完全不需要修改SVG路径:

方案1:使用混合模式(简洁高效)

选中SVG中的白色路径(第三个<path>元素),设置mix-blend-mode: clear,该属性会清除目标区域的像素,直接透出背景:

svg path:nth-child(3) {
  mix-blend-mode: clear;
}

效果说明

设置后,原本的白色区域会完全透明,下方的黑色像素也会被清除,无论是纯色背景还是图片背景,都能透过该区域正常显示,完全匹配你的预期效果。

方案2:CSS遮罩(兼容性更优)

如果需要兼容不支持clear混合模式的旧版浏览器,可以使用CSS遮罩复合实现:

svg {
  /* 创建遮罩,排除白色路径区域 */
  mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
  mask-composite: exclude;
}

/* 将白色路径填充改为黑色,配合遮罩实现镂空 */
svg path:nth-child(3) {
  fill: #000;
}

效果对比

  • 预期效果:白色区域透出背景,与下方黑色路径形成镂空效果
  • 移除白色后的效果:仅保留黑色路径,无中间遮挡块
  • 当前未处理效果:白色区域覆盖黑色路径,无法透出背景

内容的提问来源于stack exchange,提问作者Husker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:24:49