工具介绍
box-shadow 是在元素背后(或内部)绘制阴影的 CSS 属性。手写时需要按顺序填最多五个值——水平偏移、垂直偏移、模糊半径、扩展半径、颜色——外加可选的 inset 关键字,第一次写很容易顺序搞混,或者阴影调得太淡/太重。
这个工具把调参数变成了直接拖动:拖滑块,预览框里的阴影实时变化,效果满意后直接复制 CSS。颜色选择器配合不透明度滑块会自动生成正确的 rgba() 值——毕竟半透明的阴影通常比纯色阴影更真实。
为什么使用它?
- 拖动任意控件即时预览,代码写好之前就能看到最终效果。
- 偏移 X/Y、模糊、扩展、颜色、不透明度全部集中在一个界面里调整。
- 一键切换 inset,做出「按下去」的凹陷效果,而不是悬浮投影。
- 生成的 CSS 里颜色已经按你选的不透明度换算成 rgba(),直接复制即可用。
- 全部在浏览器本地计算,你调整的任何参数都不会上传。
- 免费、不用注册,手机上也能用。
使用方法
- 调整偏移 X 和偏移 Y 来定位阴影——正值往右/下移,负值往左/上移。
- 增大模糊半径让阴影边缘更柔和;增大扩展半径可以让阴影比元素本身更大。
- 选一个颜色并调整不透明度——大多数真实的阴影用 15–40% 的不透明度,而不是纯黑色。
- 如果想让阴影出现在元素边框内部而不是外部,勾选「内阴影 (inset)」。
- 复制生成的 CSS,粘贴到你的样式表里。
示例
输入
偏移:0px、10px · 模糊:20px · 扩展:0px · 颜色:黑色,不透明度 35%输出
box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.35);元素正下方一圈柔和的阴影,没有水平偏移——卡片和按钮最常用的阴影风格之一。
单层阴影 vs 多层阴影
这个工具生成单层阴影,已经能覆盖绝大多数实际场景——按钮、卡片、弹窗和下拉菜单基本都只用一层阴影。CSS 支持用逗号分隔多个阴影叠加在同一元素上,做出更精细的层次感(比如底下叠一层又紧又深的阴影,上面再叠一层又软又宽的阴影),但这属于进阶用法,可以手动补充:先用这个工具生成一层阴影,复制这一行,再调整第二组数值,用逗号连接两行即可。
常见的 box-shadow 用法
- 轻微的卡片浮起:小偏移(0–4px)、适中模糊(8–16px)、黑色 10–20% 不透明度。
- 浮起的弹窗/下拉菜单:更大的偏移(4–10px)和模糊(20–30px),不透明度 20–35%,让悬浮感更强。
- 按下去的内凹按钮:勾选内阴影,用较小的偏移和适中的模糊,让阴影看起来像凹陷而不是浮起。
- 彩色光晕:用品牌色代替黑色,不透明度调到 40–60%,稍微增大扩展半径,做出按钮周围柔和的光晕效果。
- 锐利/硬边阴影:把模糊和扩展都设为 0,得到实心的偏移剪影,而不是柔和的阴影。
配合圆角一起用
阴影和圆角几乎总是一起出现——卡片、按钮和弹窗基本都会同时用到。可以用「圆角生成器」给同一个元素加上圆角,再把两段生成的 CSS 一起用上。
常见问题
模糊和扩展有什么区别?
模糊半径让阴影边缘变柔和——数值越大,边缘过渡越渐变。扩展半径改变的是模糊之前阴影的大小——正值让阴影在四周都比元素本身大,负值则让阴影缩小。日常使用中大多只调模糊,扩展保持 0。
阴影为什么要用 rgba() 而不是普通的十六进制颜色?
完全不透明的阴影看起来生硬不真实——现实中的阴影总是带一点透明度,能透出后面的东西。rgba() 可以直接设置这种透明度,所以这个工具生成的颜色始终带 alpha 值,而不是纯色十六进制。
inset 关键字是做什么的?
不加 inset 时,阴影画在元素边框外侧,看起来像元素悬浮在页面上方。加上 inset 后,阴影画在边框内侧,让元素看起来是凹陷/按下去的,常用于按钮的按下状态或输入框。
可以在同一个元素上叠加多层阴影吗?
可以——CSS 的 box-shadow 支持用逗号分隔的列表,浏览器按顺序渲染(第一层阴影在最上面)。常见技巧是叠加一层紧凑深色阴影和一层宽泛柔和阴影,比单独一层更有层次感。
box-shadow 会影响布局吗,还是只影响外观?
只影响外观——不管模糊或扩展设多大,box-shadow 都不会改变元素本身的尺寸或影响周围元素的位置。如果阴影看起来被裁掉了,通常是父元素设置了 overflow: hidden,而不是阴影数值的问题。