如何用css实现卡片阴影渐变动画

答案:通过css的box-shadow和transition属性实现卡片阴影渐变动画,结合hover状态改变阴影大小与透明度,并可使用Filter或多重阴影增强立体感。

如何用css实现卡片阴影渐变动画

要实现卡片阴影的渐变动画,核心是利用 CSS 的 box-shadowtransition 属性,配合伪元素或滤镜(filter)来增强视觉效果。下面是一种简洁、实用的方法,让卡片在鼠标悬停时产生柔和的阴影扩散动画。

基础卡片结构

先创建一个简单的卡片 html 结构:

<div class=”card”>
  卡片内容
</div>

使用 box-shadow 实现渐变阴影动画

通过设置默认阴影和悬停时的更大阴影,结合过渡效果实现平滑动画。

CSS 样式如下:

立即学习前端免费学习笔记(深入)”;

.card {
  width: 200px;
  height: 120px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 50px auto;
}

.card:hover {
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.2);
}

说明:

  • 默认状态使用较轻的阴影 rgba(0,0,0,0.1)
  • hover 时阴影范围和模糊值增大,颜色稍深
  • transition 让阴影变化更自然

进阶:使用 filter 实现更柔和的阴影扩散

如果想让阴影看起来更“发散”或“发光”,可以用 filter: drop-shadow() 配合过渡。

如何用css实现卡片阴影渐变动画

Cardify卡片工坊

使用Markdown一键生成精美的小红书知识卡片

如何用css实现卡片阴影渐变动画41

查看详情 如何用css实现卡片阴影渐变动画

.card {
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.1));
  transition: filter 0.3s ease;
}

.card:hover {
  filter: drop-shadow(0 12px 25px rgba(0,0,0,0.2));
}

优点:

  • drop-shadow 对非矩形元素更友好
  • 视觉上比 box-shadow 更自然,像真实投影

小技巧:多层阴影模拟渐变感

box-shadow 支持多层阴影叠加,可以制造出类似渐变的层次感:

.card:hover {
  box-shadow:
    0 8px 16px rgba(0,0,0,0.1),
    0 16px 32px rgba(0,0,0,0.15),
    0 24px 48px rgba(0,0,0,0.2);
}

这种写法让阴影从内到外逐渐变淡,更有立体深度。

基本上就这些。关键点是用 transition 控制变化节奏,box-shadow 或 filter 调整视觉表现。不复杂但容易忽略细节,比如阴影颜色透明度和模糊半径的搭配。调试时可以逐步增加数值,找到最舒服的“浮起”感。

以上就是如何用

上一篇
下一篇
text=ZqhQzanResources