CSS 故障文字效果(glitch)
样式所有处理都在浏览器本地完成,数据不上传服务器
这个效果看着玄,构造其实很直接:同一段文字渲染三份 —— 原件,加上两份额外染色、错位的副本 —— 再用 `clip-path` 让每份只露出条带,最后让这些条带随时间跳动。合起来就是「信号不稳」的观感。 ⚠️ 交付的代码有一条 HTML 侧的约定:两份副本是用伪元素加 `content: attr(data-text)` 生成的,所以元素上必须同时写 `data-text="同样的文字"`。少了它,副本是空的 —— 而那种表现看起来像「效果没生效」,不会指回 HTML。这一点界面上专门提示了一句。 强度用三档而不是一个连续值:因为「错位多少」与「什么时候跳」这两件事的比例决定观感,档位是把三四个数值一起调好,用户不必自己配比例。重量级那档会明显撕裂,适合标题与 404 页面;轻量级更像「偶尔闪一下」,用在正常内容上不刺眼。 这个效果属于「用一次就够」的那类:它抓注意力,而反复抓注意力的东西会招人烦。所以别让整页都是,也别让它一直播 —— 交付的代码里带了 `prefers-reduced-motion` 的处理。
功能
- 三档强度:偶尔跳一下 / 持续抖动 / 明显撕裂
- 两份副本的颜色可调,默认是青与品红(模拟色差)
- 预览里循环播放,悬停暂停以便看清某一帧
- 打字即可预览(工具提供文字输入框)
- 交付的代码含完整 CSS + `data-text` 的 HTML 说明
- 自动附上 `prefers-reduced-motion` 的处理
- 动画名带随机后缀,不会与项目里的同名关键帧冲突
- 下方代码带语法着色,复制按钮一步拿走
- 所有计算在浏览器本地完成
使用方法
- 在上面的输入框里打几个字
- 选强度:标题适合「重」,正文里的点缀用「轻」
- 调两份副本的颜色,拉开色差会让撕裂感更强
- 复制代码,记得给元素加上同名的 `data-text` 属性
常见问题
- 为什么复制走代码后副本是空的?
- 因为漏了 `data-text` 属性。两份副本是用 `content: attr(data-text)` 生成的 —— 它们取的是元素上那个属性的值,而不是元素里的文字。所以 HTML 必须写成 `<div class="glitch" data-text="同样的文字">同样的文字</div>`,两处一致。工具在预览里已经替你设置好了,但粘进项目时要自己加上,这是这类纯 CSS 效果唯一需要配合 HTML 的地方。
- 为什么用 `clip-path` 而不是真的做画面撕裂?
- 因为 CSS 里没有「撕裂」这个操作 —— 它能做的是裁切。所以思路反过来:先准备好错位的副本,再让每一份只露出几条水平条带(`clip-path: polygon(...)`),条带随时间改变位置与范围。眼睛看到「某些横条在错位」就会解读成信号故障。这是纯 CSS 能做到的近似,也正是这个效果在网页上通行的实现方式。
- 这个效果对可访问性有什么影响?
- 它是这批效果里对可访问性最不友好的一类,三点:一是文字在持续抖动,阅读困难,所以绝不能用在正文上;二是快速闪烁的内容对光敏感人群有风险(严重时可能诱发光敏性癫痫),交付的代码里已经用 `prefers-reduced-motion` 兜了一道;三是它必然抢注意力,用在旁边有内容的地方会让人分心。所以:只在标题、404 页、游戏风界面上用,且不要让它一直播。
相关工具
霓虹灯文字
样式调颜色与强度,实时预览霓虹灯文字效果并复制 CSS。多层 text-shadow 叠出光晕,预览区配深色底。
CSS 关键帧动画模板
样式七套预设关键帧动画(淡入、滑入、弹出、脉动、抖动、旋转、浮动),调时长与曲线后复制 CSS,并附减少动态效果的处理。
CSS 过渡动画模板
样式挑过渡属性、时长、缓动与延迟,鼠标悬停即可预览并复制 CSS。交付代码里 transition 与 :hover 分开写,分工清楚。
CSS 渐变生成器
样式调角度、颜色与形状,实时预览渐变效果,一键复制 CSS。支持线性、径向与锥形三种渐变,可选中间色标。
CSS 圆角生成器
样式调四个角的圆角值,实时预览并复制 CSS。支持 px、rem 与百分比 —— 百分比在非正方形盒子上是椭圆,预览区里一眼就能看出来。
毛玻璃效果生成器
样式调模糊、透明度、饱和度与边框,实时预览毛玻璃效果并复制 CSS。代码含 -webkit- 前缀,iOS 上也能真的出现模糊。