文字阴影生成器
以可视化方式构建多层文字阴影并复制 CSS 代码
点击图层进行编辑;CSS 输出中越靠前的图层绘制在越上层。
文字阴影是给标题增添纵深、发光效果或可读性的最廉价手段之一,无需图片或滤镜。这个生成器让你逐层构建阴影,对照明暗两种实时预览调整偏移、模糊、颜色和不透明度,然后复制一段干净的 text-shadow 声明。五个预设覆盖了大多数人常用的效果,每一层都可以重新排序,让你精确控制什么绘制在最上层。
使用方法
- 选择一个起点。 用柔和、硬描边、霓虹发光、复古 3D 或浮雕载入一套调好的图层,或保留默认的单个柔和阴影。
- 选中图层。 点击图层列表中的任意一行;选中行会描边,其数值载入编辑器。
- 调整它。 移动水平偏移、垂直偏移和模糊滑块(或直接输入精确数值),再设置颜色和不透明度。
- 堆叠并重新排序。 添加图层以获得更多纵深,然后用箭头把图层上移或下移。顺序就是绘制顺序。
- 检查两种主题。 在明暗两种预览背景之间切换,并把字号滑块从 24px 拖到 96px。
- 复制。 输出是一段可直接粘贴的
text-shadow: ...;声明。
绘制顺序规则
关于 text-shadow,最需要理解的一点是:越靠前的图层压在上层。在霓虹发光预设里,第 1 层是 0px 0px 4px——一个紧凑明亮的核心——第 4 层是 0px 0px 56px,一个宽阔微弱的光晕。如果你把顺序颠倒,宽光晕就会盖在核心上,把它冲淡。同样的逻辑驱动复古 3D 预设:那里逐级更暗的副本每次再向右下各挪一个像素;最亮的副本列在最前,因此始终可见地压在最上层。
偏移是从文字原始位置量起的:正的 x 把阴影向右移,正的 y 把它向下移。零偏移配正模糊会产生一个以字形为中心的发光,而带一点正 y 和适度模糊则给出经典的凸起字母效果。模糊控制颜色向外渗出的距离;为零时阴影是与字形尺寸完全相同的硬边副本。不透明度与颜色自身的 alpha 分开追踪,因为取色器输出的是不透明十六进制,生成器会替你转换成 rgba()。如果你手工修改结果,请保留单位:text-shadow: 0 2px 4px #000 是合法的,而 text-shadow: 0 2 4 black 不是。
五个预设详解
| 预设 | 层数 | 产生的效果 |
|---|---|---|
| 柔和 | 1 | 25% 黑色的 0px 2px 4px——用于正文或标题的柔和投影 |
| 硬描边 | 4 | 零模糊的黑色副本,位于 -1/0、+1/0、0/-1、0/+1 px——可读的轮廓 |
| 霓虹发光 | 4 | 同一青色在 4、12、28、56 px 模糊下,不透明度从 90% 递减到 60% |
| 复古 3D | 5 | 深红色副本朝右下每次挪 1–5 px,零模糊 |
| 浮雕 | 2 | 上方 0 -1px 的白色,加下方 0 1px 1px 一条淡淡的深色线 |
从最接近的预设开始调整,而不是从空栈搭建。要做柔和的 UI 阴影,25% 的柔和预设已经很接近;把 y 偏移提高到 4–6px、模糊提高到 8–12px 会更有悬浮感。要一个在照片上仍可读的轮廓,用硬描边,并把颜色设成背景的深色调而不是纯黑。要做发光,保持偏移为零,只变化模糊和不透明度,并让颜色保持饱和——低饱和的发光颜色看起来像雾。复古 3D 是最值得把颜色换成品牌配色的预设,因为它的五层应当以均匀增量从亮到暗。
实操示例:解读输出
载入霓虹发光会得到这段确切的声明:
text-shadow: 0px 0px 4px rgba(15, 240, 252, 0.9), 0px 0px 12px rgba(15, 240, 252, 0.8), 0px 0px 28px rgba(15, 240, 252, 0.7), 0px 0px 56px rgba(15, 240, 252, 0.6);
改为载入硬描边,零模糊的图层会省略模糊分量,得到 -1px 0px #000000, 1px 0px #000000, 0px -1px #000000, 0px 1px #000000。默认图层是 0px 2px 4px rgba(0, 0, 0, 0.3),把它的不透明度提高到 100% 会把颜色切换成普通的 #000000。
边界情况与局限
- 多层阴影开销大。 每一层都是对每个字形的额外绘制,所以长段落上的五层阴影,代价明显高于短标题上的一套。厚重的图层栈请留给展示性文字。
- 模糊上限为 100px,偏移上限为 ±50px。 超出范围的输入会被钳制,而不是拒绝。
- 颜色输入只限十六进制。 取色器输出
#rrggbb;逻辑会规范化三位或六位十六进制,遇到非法值则回退到#000000。 - 没有扩展,也没有 inset。 如果你要给元素的盒子而不是字母加阴影,那是另一个属性和另一个工具。
- 对比度仍然重要。 阴影可能让文字更难读;请在真实背景上验证结果,而不只是在预览色块上。
- 大模糊会抹花小字。 小号浅色文字后面的大范围深色阴影会降低对比度而不是改善它,所以请用你实际要发布的最小字号测试。
- 预览只显示一行文字。 会换行的长字符串可能暴露出单行示例掩盖的层叠或重叠问题,请在自己的标记里做合理性检查。
相关工具
- CSS 盒阴影生成器 —— 带实时预览设计多层盒阴影。
- CSS Flexbox 生成器 —— 可视化设计 flexbox 布局并复制 CSS。
- CSS 渐变生成器 —— 为你的布局构建自定义 CSS 渐变。
常见问题
为什么没有像 box-shadow 那样的扩展半径或 inset 选项?
因为 CSS 的 text-shadow 不支持它们。text-shadow 属性每层只接受水平偏移、垂直偏移、可选模糊半径和颜色;与 box-shadow 不同,它没有扩展值,也没有 inset 关键字,并且永远不接受负的模糊值。生成器只提供浏览器真正会渲染的东西,所以你复制到的都是合法 CSS。
堆叠多层时哪一层绘制在最上层?
逗号分隔列表中的第一层最后绘制,因此显示在它之后各层的上面。这正是霓虹发光预设把紧凑的 4px 模糊列在最前、把宽阔的 56px 光晕列在最后的原因——明亮的核心压在微弱的外扩之上。用上下箭头调整图层顺序,预览会立即更新。
不透明度是如何体现在 CSS 输出里的?
不透明度 100% 的图层输出为普通十六进制颜色,例如 #000000。低于 100% 的值会转换成 rgba(),例如 #0ff0fc 在 90% 时变成 rgba(15, 240, 252, 0.9)。alpha 会四舍五入到两位小数,所以滑块的微小调整也会产生干净、可读的输出,而不是很长的浮点数。
如果我把所有图层都删掉会怎样?
生成器绝不会让你面对一个空的图层栈。删除最后一层时会立即插入一个全新的默认层(30% 黑色不透明度的 0px 2px 4px),所以预览和复制的 CSS 里始终至少有一个合法的阴影。这个默认值也是页面加载时的初始状态。
导出时能带选择器或类名,还是只有属性?
输出面板只给出声明本身:text-shadow: ...;,各层按堆叠顺序用逗号连接。你可以把它粘贴到任意规则里——标题类、按钮或工具层——再自己补上选择器。模糊为 0 的图层不带模糊分量,所以输出尽可能简短。
24px 到 96px 的字号预览和明暗切换会影响我的 CSS 吗?
不会,两者都只是预览控件。改变字号或切换背景只会重新渲染示例文字,因为同一个阴影在深色背景 96px 下可能很醒目,在白色背景 24px 下却几乎看不见。你复制的 text-shadow 值永远不含字号或背景——它们属于你应用该样式的元素。
由 HandyTools Hub 团队审校 · 最后更新