子比主题用久了,最让人腻味的大概就是首页文章列表底下那一排排灰扑扑的标签。内容是好内容,排版也整齐,但每个标签都长得一模一样,一眼扫过去完全没有重点,访客想快速判断这篇文章聊的是什么方向,只能靠猜。这篇文章我直接给出一个能落地的美化方案:通过 CSS 配合少量 JS,让首页文章列表里的标签呈现出随机彩色效果,每次刷新页面颜色都不同,视觉层次一下就能拉开。方案不复杂,不用改主题的 PHP 文件,不需要动数据库,后台粘贴代码就能跑起来,适合所有子比主题站长参考。
我最初的思路其实很单纯:Subiz 主题列表页的标签默认用的是一套灰底灰边的按钮样式,批量输出时所有标签同色,从设计角度看显得平。随机彩色能打破这种单调感,让每个标签都自带"注意力磁铁"的属性,特别适合标签本身数量多、内容跨度大的站点。后面我会把从定位标签元素到写随机脚本的完整过程都拆开讲,也会解释为什么最终选了 CSS 类名随机和 HSL 随机两条路线,而不是直接在样式表里写死颜色。
1. 先搞清楚:首页标签的默认结构与随机彩色的实现思路
1.1 子比主题首页标签的默认样式和痛点
子比主题在首页文章列表里展示标签时,一般是把当前文章的每个标签渲染成一个小链接,放在文章卡片底部或标题下方的 meta 区域。渲染的 HTML 结构大体类似下面这样:
<div class="article-tags"> <a href="https://xxx.com/tag/tutorial" rel="tag">教程</a> <a href="https://xxx.com/tag/wordpress" rel="tag">WordPress</a> <a href="https://xxx.com/tag/css" rel="tag">CSS</a> </div>主题自带的 CSS 会给这些链接套上统一的背景色、边框和文字颜色。从功能上说这完全没问题,一个标签该有的链接跳转能力它都有,但视觉上确实缺了点"活气"——所有标签都是同一种灰,同一种圆角框,同一种悬停反馈,放在信息流里几乎起不到引导视觉的作用。
我做这个美化之前专门拆过子比主题不同版本的标签样式,发现大多数版本给标签定义了一套 CSS 变量,通过--tag-bg、--tag-hover这类变量控制颜色。这个设计本身是灵活的,只是它没有把"不同标签用不同颜色"这件事做成默认能力。我们的目标就是给标签元素重新注入色彩变量,打破同质化。
1.2 为什么不用改模板,而是用 CSS 加 JS 的方案
遇到这种"批量元素、逐个着色"的需求,最容易想到的思路是改主题的 PHP 模板,在输出标签的地方加一个随机颜色的 class。这个思路没问题,但不适合大多数普通站长:一是改模板会面临升级覆盖的风险,子比主题每次更新都可能覆盖你改过的模板文件;二是标签输出的位置不止首页列表一个地方,文章页、侧栏、作者页都可能输出标签,只改一处会出现"首页彩色、其它页面还是灰色"的割裂感。
所以更稳的做法是纯前端实现:用 CSS 定义颜色规则,用 JS 在页面加载时遍历标签链接、逐个赋予随机颜色。这样做的好处有三点——不碰 PHP 文件,主题升级不影响;所有位置的标签只要选择器适配,都可以统一被着色;JS 随机逻辑不依赖后端环境,任何人拷贝到自己的站点都能直接跑。
这里要特别说明一个技术前提:纯 CSS 本身是做不到真正随机的。CSS 有nth-child、有:random之类的讨论,但标准 CSS 没有真正的随机函数。所以"CSS 实现随机彩色"这句话严格讲不准确,准确来说是"CSS 负责定义颜色(色卡或 HSL 变量),JS 负责决定每个标签套用哪一个颜色"。把随机这件事交给 JS,把渲染样式这件事交给 CSS,各司其职,这是我在多次实践中磨合出来的最顺手的组合。
2. 正式动手前的基础准备:定位标签元素与理解色值模型
2.1 用开发者工具快速找到标签所处的容器
这一步是最容易劝退新手的环节,因为你打开浏览器按 F12 后,看到一排 HTML 节点,很容易不知道哪个是标签容器。我提供一个稳定的方法:在首页文章列表里鼠标右键任意一个标签,选择"检查"(Chrome / Edge / Firefox 都是这个选项),浏览器会直接定位到那个<a>标签的代码行,然后往上翻一层看它的父容器。
子比主题的标签容器在不同版本里命名可能不同,常见的有.article-tags、.item-tags、.tags-links、.post-tags等。如果你的站点里的父容器不在这些命名里,直接复制它实际的 class 名就行。定位错了后面所有代码都白写,所以这一步别图快。我的习惯是定位完成后再搜索 CSS 面板里该容器的font-size、padding等属性,确认主题默认样式确实绑定了这个容器,才判断选择器找对了。
新手容易犯的一个错误是:只看某个标签的单一样式,却忽略了它和同组其它标签之间的间距、排列方式。我们要做的是给每个标签加独立颜色,所以选择器需要精确到容器 a这一级,不要写成.article-tags就给容器加颜色,那样所有标签还是一个颜色。正确写法在后面实现章节会完整给出。
2.2 随机彩色的核心原理:色相环、HSL 与 CSS 变量
要给标签上色,先得理解怎么描述颜色。Web 颜色有三类常见写法:十六进制#e74c3c、RGBrgb(231, 76, 60)、HSLhsl(9, 78%, 64%)。十六进制和 RGB 适合表示具体颜色,但对"随机生成"这件事不友好——你随机三个 0 到 255 的数值,很容易得到一堆刺眼的荧光色。
HSL 就是专门解决这个问题的模型。H 是色相(Hue),取值范围 0 到 360,对应色环上的红、橙、黄、绿、青、蓝、紫;S 是饱和度(Saturation),0 到 100%,越高颜色越艳;L 是亮度(Lightness),0 到 100%,越高越接近白色,越低越接近黑色。随机颜色时只需要让 H 在 0 到 360 之间随便跳,同时把 S 和 L 控制在合理区间,出来的颜色就会"多彩但不廉价"。
举个例子,设 S 在 55% 到 80% 之间、L 在 35% 到 50% 之间,随机出来的颜色就是那种饱和度适中、肉眼看着舒服的彩色系。再加上透明度(Alpha,即hsla的 A 参数),就能做出背景色的半透明效果,让标签底色不会喧宾夺主。下面实现方案里,方案 B 走的就是这条路,本质是让 JS 生成一个hsl(...)字符串,然后通过 CSS 变量交给标签使用。
2.3 子比主题自定义样式和代码的存放位置
动手改代码之前,先花十秒钟确认一下往哪里粘贴。子比主题一般在 WordPress 后台的外观定制或主题选项里提供了额外的 CSS 和 JS 输入框。以 Zibll 为例,通常路径是"外观 → 自定义样式"或主题设置里的"自定义代码"模块,里面有自定义 CSS 文本框和自定义 JS / 自定义 HTML 文本框。这里粘贴的代码不会随主题升级消失,是最安全的地方。
如果后台找不到自定义 JS 入口,退而求其次的建议是:把 JS 内容转换成一段内联<script>,通过"自定义 HTML"小工具或者子主题的functions.php挂到页脚。需要在functions.php中引入时,用wp_add_inline_script或者add_action('wp_footer', ...)都行。我个人更推荐优先使用主题自带的自定义代码面板,因为它的加载时机和缓存机制已经由主题处理过,踩坑概率低。
3. 完整实现过程:两种随机彩色方案与进阶美化
3.1 方案 A:固定色卡加随机类名(视觉统一、性能最好)
如果你希望站点的标签色彩既丰富又不至于太跳,我最推荐先试这个方案。它的逻辑分两步:CSS 里定义一套色卡(我建议 8 到 12 种颜色),每种颜色对应一个 class;JS 加载完成后遍历标签,随机挑一个 class 挂到标签上。
第一步,在自定义 CSS 区域粘贴这段样式。注意我把颜色同时应用到了文字、边框和半透明背景三处,这样标签整体有"彩色"的感觉,而不是单纯把文字换个色:
/* 标签随机彩色色卡 */ .tc-1 { color: #e74c3c !important; border-color: #e74c3c !important; background-color: rgba(231, 76, 60, 0.08) !important; } .tc-2 { color: #e67e22 !important; border-color: #e67e22 !important; background-color: rgba(230, 126, 34, 0.08) !important; } .tc-3 { color: #f1c40f !important; border-color: #f1c40f !important; background-color: rgba(241, 196, 15, 0.10) !important; } .tc-4 { color: #2ecc71 !important; border-color: #2ecc71 !important; background-color: rgba(46, 204, 113, 0.08) !important; } .tc-5 { color: #16a085 !important; border-color: #16a085 !important; background-color: rgba(22, 160, 133, 0.09) !important; } .tc-6 { color: #3498db !important; border-color: #3498db !important; background-color: rgba(52, 152, 219, 0.08) !important; } .tc-7 { color: #9b59b6 !important; border-color: #9b59b6 !important; background-color: rgba(155, 89, 182, 0.08) !important; } .tc-8 { color: #e84393 !important; border-color: #e84393 !important; background-color: rgba(232, 67, 147, 0.08) !important; } .tc-9 { color: #fd79a8 !important; border-color: #fd79a8 !important; background-color: rgba(253, 121, 168, 0.10) !important; } .tc-10 { color: #00b894 !important; border-color: #00b894 !important; background-color: rgba(0, 184, 148, 0.08) !important; } .tc-11 { color: #0984e3 !important; border-color: #0984e3 !important; background-color: rgba(9, 132, 227, 0.08) !important; } .tc-12 { color: #6c5ce7 !important; border-color: #6c5ce7 !important; background-color: rgba(108, 92, 231, 0.08) !important; }第二步,在自定义 JS 区域粘贴这段脚本。脚本会等待页面 DOM 加载完成,然后遍历所有标签容器的a标签,挂上一个随机的色卡 class。我给标签容器留了三个常见选择器,你按实际情况增删即可:
document.addEventListener('DOMContentLoaded', function () { var tagContainers = document.querySelectorAll('.article-tags, .item-tags, .tags-links, .post-tags'); var tagClasses = ['tc-1', 'tc-2', 'tc-3', 'tc-4', 'tc-5', 'tc-6', 'tc-7', 'tc-8', 'tc-9', 'tc-10', 'tc-11', 'tc-12']; tagContainers.forEach(function (container) { var links = container.querySelectorAll('a'); links.forEach(function (link) { var randomIndex = Math.floor(Math.random() * tagClasses.length); link.classList.add(tagClasses[randomIndex]); }); }); });这个方案最大的优点是可以精确控制颜色种类,站点品牌色、主色调都能放进色卡。比如你做的是科技类站点,想多用蓝紫色系,就把色卡改成以蓝、紫、青为主。缺点是刷新页面后同一个标签的颜色会变,如果你希望同一篇文章的固定标签永远固定某一种颜色,那需要换成后端方案,我在后面会讲怎么调整。
3.2 方案 B:HSL 全色域随机(每次刷新色彩更丰富)
如果你觉得 12 色还不够玩,想每次打开首页标签颜色都不重样,可以用重量级一点的 HSL 方案。它的核心是让 JS 直接生成一个 HSL 颜色字符串,赋给标签的 style 属性,CSS 里只需要定义基础的过渡动画即可。
JS 代码如下:
document.addEventListener('DOMContentLoaded', function () { var tagLinks = document.querySelectorAll('.article-tags a, .item-tags a, .tags-links a, .post-tags a'); tagLinks.forEach(function (link) { var hue = Math.floor(Math.random() * 360); var saturation = 55 + Math.floor(Math.random() * 25); var lightness = 35 + Math.floor(Math.random() * 15); link.style.color = 'hsl(' + hue + ', ' + saturation + '%, ' + lightness + '%)'; link.style.borderColor = link.style.color; link.style.backgroundColor = 'hsla(' + hue + ', ' + saturation + '%, ' + lightness + '%, 0.08)'; }); });配合的 CSS 只需要一小段,作用是让标签在颜色变化和鼠标悬停时有平滑的过渡感:
.article-tags a, .item-tags a, .tags-links a, .post-tags a { transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease; }这个方案为什么好看?因为 H 值在 0 到 360 之间随机,理论上每一次刷新都有 360 个色相方向的可能,配合 S 和 L 的约束范围,出来的颜色既有变化又不会刺眼。我自己实测下来,饱和度和亮度范围如果放开到满值,就会出现那种很"廉价"的荧光色;收紧到上面这个区间,整体观感接近设计工具里的"柔和调色板",和大多数现代主题的圆角卡片风格都搭。
需要注意一点:这个方案的随机是纯前端的,意味着同一个标签在这一秒显示一种颜色,刷新后变成另一种。如果你在乎 SEO 或社交分享时的缩略图一致性,这不算问题,因为标签颜色不影响内容抓取;但如果你有"某种语义的标签就应该是某种固定颜色"的品牌需求,那纯随机方案并不适合你,这种情况下应该回到色卡方案,并为特定标签写固定映射。
3.3 进阶:让标签悬停时产生涟漪光圈扩散效果
随机颜色做到这步,基础的视觉提升已经完成了,但作为美化教程,不送点额外的装饰技巧总觉得亏。这里我补充一个很多人喜欢的细节——鼠标悬停在标签上时,从标签中心向四周扩散一圈淡淡的涟漪光圈。这个效果用 CSS 的伪元素和动画就能做,不需要额外 JS。
在原 CSS 里追加如下代码:
.article-tags a, .item-tags a, .tags-links a, .post-tags a { position: relative; overflow: hidden; z-index: 1; } .article-tags a::after, .item-tags a::after, .tags-links a::after, .post-tags a::after { content: ''; position: absolute; left: 50%; top: 50%; width: 120%; height: 120%; border-radius: 50%; background: currentColor; opacity: 0; transform: translate(-50%, -50%) scale(0.2); transition: transform 0.3s ease-out, opacity 0.3s ease-out; pointer-events: none; z-index: -1; } .article-tags a:hover::after, .item-tags a:hover::after, .tags-links a:hover::after, .post-tags a:hover::after { opacity: 0.1; transform: translate(-50%, -50%) scale(1.2); }这段代码的关键在于currentColor:它会自动继承当前标签的文字颜色,所以不管是色卡方案还是 HSL 方案,涟漪扩散出来的颜色都和标签文字颜色保持一致。z-index: -1保证涟漪在文字下层,不会遮住文字本身。我用scale从 0.2 放大到 1.2,配合透明度从 0 升高到 0.1,形成一种从中心向四周推开的"光圈扩散"错觉,视觉效果比普通的背景色渐变要细腻。
如果你觉得涟漪不够看,想更"炫"一点,还可以给标签文字加渐变效果。但这个要克制,标签字号本来就小,文字加渐变很容易糊成一团。我的建议是把渐变用在少数需要重点强化的标签上,比如"置顶"、"精华"这类系统标签,效果更好。实现文字渐变需要background-clip: text和text-fill-color: transparent,具体在后面的常见问题里我会给出完整示例一起说。
4. 标签随机彩色实战中的常见问题与修复技巧
4.1 标签颜色完全没生效,可能卡在哪三个环节
这是反馈率最高的问题。按我的排查顺序来:先确认选择器有没有匹配到真实的标签容器。你可以打开浏览器控制台(F12 切到 Console),手动输入document.querySelectorAll('.article-tags')看返回的元素数量,如果结果是 0,说明选择器名称不对,回到 2.1 节用检查工具重新确认容器 class。
第二步检查自定义 JS 是否被主题的延迟加载机制影响。部分主题启用了异步加载,DOM 还没准备好时就执行了 JS,导致找不到标签。我使用DOMContentLoaded监听器就是为了规避这个问题,如果你发现依然不行,把两处 JS 的变量打印出来看看,或改用window.addEventListener('load', ...)试试。
第三步检查 CSS 优先级。子比主题默认样式里可能对标签a有较高优先级的选择器,我因此给色卡 class 加了!important,这是省事但见效的做法。如果还是被覆盖,就在自定义 CSS 里再加大选择器权重,比如写成.article-card .article-tags a.tc-1这种更长路径,正常能压过主题默认样式。
还有一点容易被忽略——浏览器和服务器缓存。CSS 和 JS 改动后,刷新页面看到的往往是旧版本。排查时开隐身窗口,或在 URL 后加?v=20240101强制请求新文件。子比主题一般有缓存设置,动态 CSS 和动态 JS 都有可能走了缓存,记得到后台清理一次缓存再验证。
4.2 随机出来的颜色太亮、太暗或者太丑,怎么微调
随机不代表放任。HSL 方案里三个参数决定了最终效果,如果你觉得颜色"脏",多半是 L(亮度)取值太偏;觉得"刺眼",多半是 S(饱和度)太高。我把调节区间整理成一张速查表,照着调就能找到舒服的范围。
| 观察到的效果 | 原因 | 建议调整 |
|---|---|---|
| 整体刺眼、荧光感强 | 饱和度太高 | 把 S 从 55~80 降到 40~65 |
| 整体灰蒙蒙、没精神 | 饱和度太低 | 把 S 从 55~80 升到 60~85 |
| 颜色发黑、看不清文字 | 亮度太低 | 把 L 从 35~50 提到 45~60 |
| 颜色白花花、没有彩色感 | 亮度太高 | 把 L 从 35~50 降到 25~40 |
| 两种颜色太接近,区分度低 | 色相区间太窄 | 把 H 的Math.random() * 360改为分区间随机 |
| 单一页面内颜色重复率高 | 标签数量少导致随机碰撞 | 选用色卡方案,并手动校验色卡之间对比度 |
另一个实用技巧是先把随机逻辑注释掉,手动给三个标签分别设置hsl(0, 70%, 42%)、hsl(120, 70%, 42%)、hsl(240, 70%, 42%),刷新看下设计效果,再决定 S 和 L 的最终区间。这种"先固定样本、再放开随机"的方式,能帮你在不确定时快速做决策。
4.3 点击标签不想在当前页跳转,想在新窗口打开
标签默认跳转方式可能是当前页,如果你想让它强制新窗口打开,可以顺手加一段 JS。注意只需要给列表区域里的标签加target就行,全文内容里的标签是否新窗打开取决于你自己——从阅读体验看,文章正文里我并不建议开新窗口,容易打断阅读节奏;但列表页标签开新窗口,能让访客保留信息流的锚点,回头继续往下刷。
参考代码:
document.querySelectorAll('.article-tags a, .item-tags a, .tags-links a, .post-tags a').forEach(function (link) { link.setAttribute('target', '_blank'); link.setAttribute('rel', 'noopener noreferrer'); });这段代码可以单独放在上面任意一个 JS 方案的后半部分,也可以做成独立脚本。加了rel="noopener noreferrer"是为了避免新窗口页面反向控制你的原页面,这是在设置target="_blank"时必须同步加上的安全兜底。如果你只想让某些分类或某些页面的标签开新窗口,就在选择器里加.site-content之类的限定父级。
4.4 想让标签颜色固定不变,不随刷新变化怎么处理
有的人看完文章会觉得"随机颜色好看是好看,但同一个标签每次刷新都变颜色,不利于识别"。这个诉求合理,我也遇到过。要解决它,需要把"随机"从页面加载的 JS 挪到后端,让每个标签在数据库中对应一个固定颜色。一个轻量实现思路:在子主题的functions.php里用add_filter钩子给标签输出时附加一个由标签 MD5 哈希计算的 class 或直接颜色样式。
举例,你可以在functions.php中加入:
add_filter('wp_get_object_terms', function ($terms) { foreach ($terms as $term) { if (property_exists($term, 'name')) { $hash = md5($term->name); $hue = (hexdec(substr($hash, 0, 2)) * 2) % 360; $term->color = 'hsl(' . $hue . ', 65%, 42%)'; } } return $terms; });但说实话,这种方式要接入标签输出模板才有意义,而且不同主题的模板结构不同,硬写进去容易出兼容问题。更省事的折中做法是:色卡方案的基础上,在 JS 里给相同文本的标签做缓存,第一次渲染随机颜色后把颜色记进localStorage,后续刷新都优先读缓存。这样同一个标签在同一个浏览器里保持同色,不同浏览器之间还是会有差异,但对日常阅读已经足够。
示例脚本:
document.addEventListener('DOMContentLoaded', function () { var tagLinks = document.querySelectorAll('.article-tags a, .item-tags a, .tags-links a, .post-tags a'); tagLinks.forEach(function (link) { var tagName = link.textContent.trim(); var saved = localStorage.getItem('tagColor_' + tagName); if (saved) { link.style.color = saved; } else { var hue = Math.floor(Math.random() * 360); var color = 'hsl(' + hue + ', 65%, 42%)'; localStorage.setItem('tagColor_' + tagName, color); link.style.color = color; } }); });这个方案还额外附带一个效果:因为颜色和标签名绑定,同一页里重复出现的同一个标签会自动呈现同一种颜色,整体感更整齐。我现在管理的几个站点里有一个就是用了这个"本地记忆版",用户反馈说视觉上"有秩序多了"。
4.5 加载过程闪一下原始样式,页面出现"闪烁"
细心的人会发现,放入 JS 方案后,页面加载时标签会先以默认的灰色短暂出现,然后突然变成彩色。这个是因为 JS 在DOMContentLoaded才执行,浏览器已经渲染了第一帧。对追求完美的人来说,这个闪烁感不能忍。
解决思路有两个方向。第一个方向是尽量提前 JS 执行时机,比如放弃DOMContentLoaded,把脚本直接内联在页面头部,并且放在主题样式表格之后——但这种方式对几乎所有 WordPress 主题都不可控,作为通用教程不推荐。
第二个方向更实际:既然最终都要覆盖颜色,不如直接把初始样式也做成彩色底子。具体做法是在 CSS 里给所有标签统一定一个相对好看的基础彩色,即使 JS 还没执行,标签也不是灰的;JS 执行后逐个替换成随机彩色。基础色我用#6c5ce7蓝紫色比较保险:
.article-tags a, .item-tags a, .tags-links a, .post-tags a { color: #6c5ce7 !important; border-color: #6c5ce7 !important; background-color: rgba(108, 92, 231, 0.08) !important; }这样即使 JS 因某种原因加载失败,标签也有配色兜底,不会退回灰色。这个"兜底色"思路以后做任何前端交互都适用,是避免闪烁问题成本最低的办法。
4.6 关于 CSS 字体渐变、标签语义化与更多延伸玩法
实现到这里,首页文章列表的标签随机彩色版就已经完全落地了。延伸玩法里我还想补充一个很出效果的小技巧:文字渐变标签。虽然前面说不能滥用,但在个别重点标签上用一下,观感提升非常明显。实现文字渐变,靠的是颜色填充裁剪,和普通文字颜色写法不同:
.gradient-tag { background: linear-gradient(90deg, #ff6b6b, #feca57, #48dbfb, #ff9ff3); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }把gradient-tag挂到你想要强调的标签上,文字就会呈现流动渐变。如果你同时想让背景也渐变,可以嵌套伪元素,但真的别给每个标签都用,不然整个列表会花成霓虹灯。我自己的习惯是:"置顶"、"爆款"、"精选"这类特殊标签用一次渐变,普通内容标签走随机色卡,层次很分明。
说到标签的语义化,这也是容易被忽略的点。很多人会问colspan是什么、span标签是干什么的,其实标签美化不应该只停留在视觉,还要保持结构语义。列表页标签做成<a>链接是标准的,但如果你的主题把标签渲染成了<span>无法点击,那要注意在自定义 HTML 里补上链接包裹,否则"随机彩色"做得再漂亮也失去标签本来的导航意义。我在处理一些老版本主题时遇到过这个问题,建议修改模板前先确认标签是链接还是纯文本节点。
关于 CSS 的引入方式,顺带提一句:我们所有示例代码都建议放在子比主题后台的自定义面板,而不是直接改主题的style.css。后者在主题更新时会被覆盖,前者不会。如果你用的是子主题,也可以把 CSS 写进子主题的样式文件,JS 写进子主题的 js 文件,本质等价,主要看你更习惯哪种管理方式。
最后还想提一个问题:移动端表现。随机彩色标签在手机上依然生效,因为 JS 和 CSS 与设备无关。不过手机屏幕小,标签排列密集,色卡里的浅色背景在强光下可能不明显。建议色卡方案里的背景透明度从0.08调整到0.12左右,加大背景浓度以提升辨识度。我就在移动端排查时发现0.08的透明度在部分 OLED 屏幕上显示偏淡,调到0.12后观感整体好了不少。
我个人的体会是:标签美化这类小改动,最怕的是"做完了但不敢上线"。随机彩色会不会太花哨,会不会影响阅读,在动手前谁都没法给出标准答案。我自己第一次做完,在后台预览刷新了几十次,把所有颜色组合都看了一遍,确认没有刺眼的组合才敢部署到线上。你按文章里的方案做完后,也建议先在暂存环境或后台预览里多刷新几次,把色卡和随机的区间调整到自己真心觉得舒服的程度,再正式上线。这比匆忙挂到线上、被读者反馈刺眼再回滚要稳妥得多。