跳到正文
Yukun Wang
返回

只有它一个浏览器是蓝的

编辑此页

收到两张截图,同一个页面。一张标题是赭红色,站名是米白;另一张里,标题、站名、面包屑,全部变成了那种很熟悉的链接蓝。

第一反应是”我是不是改主题改坏了”。毕竟前一天晚上刚换过全站配色。

先证明线上是对的

先不动代码,做三件很便宜的事:

结果三步全过:变量在,规则在,计算值就是那个赭红(浅色偏暗、深色偏亮),不同 UA 拿到的 HTML 一个字节都不差。

到这里可以下结论:站点没毛病。

链接蓝意味着什么

有个细节值得多看一眼:出问题的那张截图里,变蓝的不只是标题,连左上角的站名和面包屑都蓝了。而正常情况下,这些元素跟正文同色,只有标题才是赭红。

链接退回系统默认蓝,说明作者写的那条 color 规则在那个客户端根本没生效。 这和”配色变量取值不对”完全是两码事:变量错了只会变成一个错的颜色,不会变成浏览器内置的那一种蓝。

既然线上产物是对的、不同 UA 拿到的字节也一样,剩下的解释只能是客户端自己动手改了颜色。

最后一步省了一晚上

给了两个三十秒能做完的测试:无痕窗口打开,和关掉浏览器里”所有网页均为深色主题”那个开关。

答案来得很快,就是那个开关。它会把页面上所有颜色按亮度重新算一遍,赭红就这么被算成了蓝。关掉之后,页面立刻恢复原样。

顺序比结论值钱

如果一开始就去改主题变量,会发生两件事:一是我会改出第三个、第四个错的颜色;二是很可能顺手把本来正常的浏览器也改坏。因为问题根本不在变量上。

先量、再猜、最后才改代码。这一步省下的不是时间,是改动的范围——以及一次可能很昂贵的自证清白。

后来我把这个检查加进了自己的排查清单:看到颜色不对,先问一句”是不是客户端干的”。


编辑此页
分享这篇文章:

上一篇
线路突然不响了