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

React+Tailwind实现Div仅外部边缘显示DropShadow的需求

实现圆角半透明渐变Div的边缘外投影效果

解决思路

box-shadow适配不了圆角渐变的问题,drop-shadow又会钻进透明区域,那我们就给阴影单独做个"壳":用一个和目标组件形状完全一样、纯透明但有完整轮廓的底层元素,只给它加drop-shadow,再把原渐变组件叠在上面——这样阴影只会跟着底层的轮廓走,不会渗透到上层的透明渐变里。

Tailwind CSS实现代码

修改你的组件结构,新增阴影载体层:

<div className="w-full h-full relative">
  {/* 阴影载体:和上层形状完全匹配,只负责生成阴影 */}
  <div className="absolute inset-0 rounded-t-[0.6770vw] rounded-b-[0.4166vw] bg-transparent drop-shadow-[0_4px_12px_rgba(0,0,0,0.3)]"></div>
  
  {/* 原渐变内容层,放在阴影上面 */}
  <div className="w-full h-full relative z-10">
    <div className="w-full h-[8.43vw] flex items-center justify-center rounded-t-[0.6770vw] bg-gradient-to-br from-custom-gray-300/50 to-custom-gray-400/0">
      <Image className="w-[6.25vw] h-[6.25vw]" width={120} height={120} src={'/streaming_perfil.png'}/>
    </div>
    <div className="w-full h-[2.656vw] rounded-b-[0.4166vw] bg-gradient-to-br from-[#BD00FF]/30 to-[#737373]/0 flex items-center justify-center">
      <p className="text-20 font-thin text-white">Streaming</p>
    </div>
  </div>
</div>

关键细节

  • 阴影载体用absolute inset-0占满父容器,圆角参数必须和上层完全一致,背景设为bg-transparent不影响上层显示,但能让drop-shadow识别它的边缘轮廓。
  • 原内容层加z-10确保在阴影上方,避免被阴影遮挡。
  • 可调整drop-shadow的参数(偏移量、模糊度、颜色值)来匹配设计图的阴影效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:57:17