使用box-shadow设置阴影实现立体感,2. 通过@keyframes定义上下位移与阴影变化的动画,3. 将动画绑定元素并设为无限循环,利用ease-in-out使漂浮更自然。

想让网页元素看起来像是“漂浮”在页面上,可以通过结合CSS的 box-shadow 和 animation 实现自然的浮动效果。这种设计常用于卡片、按钮或悬浮模块,增强视觉层次和交互感。
使用 box-shadow 制造立体感
box-shadow 能为元素添加阴影,模拟光源下的投影,是实现“悬浮”视觉的关键。通过设置模糊半径和偏移值,可以让元素看起来脱离背景。
.floating-box {width: 200px;
height: 150px;
background-color: #4a90e2;
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
margin: 50px auto;
}
这里的 0 8px 20px 表示:无水平偏移,向下偏移8px,模糊半径20px,配合透明黑色产生柔和阴影。
用 keyframes 定义浮动动画
通过 @keyframes 创建一个上下移动并轻微改变阴影的动画,模拟轻盈漂浮感。
立即学习“前端免费学习笔记(深入)”;
@keyframes float {0% {
transform: translateY(0);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
50% {
transform: translateY(-10px);
box-shadow: 0 12px 25px rgba(0, 0, 0, 0.2);
}
100% {
transform: translateY(0);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
}
在最高点时,元素上移10px,同时阴影更大更暗,表示“离背景更远”,增强立体错觉。
将动画应用到元素
把定义好的动画绑定到目标元素,并设置循环播放和缓动函数,使运动更自然。
.floating-box {animation: float 3s ease-in-out infinite;
}
ease-in-out 让动画起止慢、中间快,模仿物理惯性。infinite 实现持续漂浮。
基本上就这些。只要合理搭配阴影变化与位移动画,就能轻松做出逼真的浮动效果,提升界面活力。










