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

能否通过CSS隐藏PNG图片同时保留drop-shadow投影效果?

如何用CSS隐藏PNG原图仅保留drop-shadow投影效果?

当然可以直接用CSS实现,无需借助Photoshop。你当前通过平移元素+偏移投影的方法虽然能生效,但存在依赖视口宽度的局限性,这里提供两种更简洁可靠的方案:

方案一:利用opacity: 0隐藏原图

将图片的透明度设为0,此时原图完全不可见,但drop-shadow滤镜会基于图片的原始轮廓生成投影,完美保留你需要的效果:

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.photo {
  width: 100%;
  /* 隐藏原图 */
  opacity: 0;
  /* 添加投影效果 */
  filter: drop-shadow(0 10px 5px #ff0000);
  position: relative;
  display: block;
}
<div>
  <img src="nba.png" alt="..." class="photo">
</div>

方案二:使用clip-path裁剪掉原图

通过clip-path将图片的可视区域裁剪为0,只保留投影的显示空间,这种方法不会影响元素的布局位置:

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.photo {
  width: 100%;
  /* 裁剪掉所有可视区域 */
  clip-path: inset(100%);
  /* 添加投影效果 */
  filter: drop-shadow(0 10px 5px #ff0000);
  position: relative;
  display: block;
}
<div>
  <img src="nba.png" alt="..." class="photo">
</div>

补充说明

你原方法的思路是可行的:通过transform: translate(-100%, 0%)把原图移出可视区域,同时用drop-shadow的X轴偏移把投影拉回屏幕内,但如果图片宽度不是100%视口宽度,--distance: 100vw的设置会导致投影位置偏移不准确,上面的两种方案则没有这个限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:42:25