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

如何在不使用spread值的前提下扩大drop-shadow并实现Logo发光?

解决drop-shadow无spread参数时的大范围扩散+Logo发光问题

嘿,我懂你遇到的麻烦了——标准的drop-shadow滤镜确实不支持spread参数(只有box-shadow有),而且很多浏览器对非标准的-webkit前缀版本的扩展参数支持也不好。不过咱们可以用叠加多层drop-shadow的方法来模拟出大范围扩散的发光效果,兼容性拉满!

核心思路

通过叠加多层drop-shadow,每层使用不同的模糊半径和透明度:

  • 内层用较小的模糊半径+较高的透明度,保证发光的核心亮度
  • 外层用更大的模糊半径+较低的透明度,模拟“扩散”的效果
    多层叠加后,视觉上就会呈现出类似带spread的阴影+发光的质感。

修改后的完整代码

img {
  height: auto;
  width: 200px;
  margin-right: 2vw;
  animation: logo-glow 2s infinite alternate-reverse;
}

@keyframes logo-glow {
  0% {
    /* 叠加3层阴影,从内到外模糊增大、透明度降低,模拟大扩散的发光 */
    filter: drop-shadow(0 0 8px rgba(255, 3, 17, 0.9))
            drop-shadow(0 0 16px rgba(255, 3, 17, 0.6))
            drop-shadow(0 0 24px rgba(255, 3, 17, 0.3));
    /* 去掉-webkit前缀,标准filter现在主流浏览器都支持了 */
  }
  100% {
    /* 动画结束端对应调整阴影,保持渐变自然 */
    filter: drop-shadow(0 0 2px rgba(64, 4, 0, 0.9))
            drop-shadow(0 0 4px rgba(64, 4, 0, 0.7))
            drop-shadow(0 0 6px rgba(64, 4, 0, 0.4));
  }
}
<img src="http://www.tdcdkhd.com/wp-content/uploads/2018/03/logo.png">

小提示

  • 你可以根据需求调整层数、模糊半径和透明度:想要扩散范围更大,就增加外层阴影的模糊半径;想要发光更亮,就提高内层阴影的透明度。
  • 现在主流浏览器(Chrome、Firefox、Edge等)都支持标准的filter属性,不用再依赖-webkit-前缀啦,这样兼容性更好。
  • 如果想要更极致的发光效果,还可以在0%的帧里额外加个brightness(1.1)滤镜,让Logo本身也稍微提亮一点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:09:17