2026-10-19 11:26:01
通过CSS的box-shadow属性结合盒模型,可以创建自然且富有层次感的阴影效果。以下是具体实现方法与关键技巧:
一、基础语法与参数解析box-shadow的核心参数如下,通过调整它们可控制阴影形态:
示例:
.box { box-shadow: 2px 4px 8px 0 rgba(0, 0, 0, 0.2);}二、盒模型对阴影的影响阴影起始位置阴影默认从边框外缘开始绘制,受padding和border影响:
增加padding会使内容远离阴影边缘,增强阴影可见性。
设置border-radius时,阴影会跟随圆角形状。
outline或margin不影响阴影位置,阴影仍以border外侧为基准。
推荐搭配
.card { border-radius: 8px; /* 圆角阴影 */ padding: 16px; /* 内容与阴影分离 */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); /* 柔和阴影 */}通过逗号分隔多个阴影值,可叠加不同特性的阴影,模拟真实光照效果:
卡片效果示例:
.card { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), /* 近距离阴影 */ 0 8px 16px rgba(0, 0, 0, 0.1); /* 远距离阴影 */}四、适配不同场景的实用技巧按钮交互效果
点击态:用inset内阴影模拟按下效果。.button:active { box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);}
悬浮动画:通过JS动态调整box-shadow实现浮起效果。button.addEventListener('mouseover', () => { button.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.2)';});
深色背景优化深色背景下避免纯黑阴影(生硬),推荐蓝色调(如rgba(0, 0, 255, 0.3))。
通过合理搭配box-shadow参数与盒模型属性(如padding、border-radius),可实现从扁平到立体的多样化阴影效果。关键点包括: