系统切到深色模式后,导航背景 #1f1f1f,文字 #333333,几乎看不清。用对比度工具算是 1.4:1,正文反倒正常。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
@media (prefers-color-scheme: dark) {
.site-nav { background: #1f1f1f; color: #f5f5f5; }
}
深色模式只覆盖了 body 的背景和文字颜色,导航用的是独立的 CSS 变量,还停在浅色主题的值。层级选择器优先级又压过了媒体查询。这一点先确认清楚,后面就不用反复试。
「导航深色对比度」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
具体做法是,把导航颜色也改成变量 跟随 prefers-color-scheme;检查媒体查询里的选择器优先级 别被后面的规则覆盖;用对比度工具按 4.5:1 校准。
改完照着核一遍,深色模式下导航文字对比度达到 4.5:1,图标和链接都清晰可读。
