You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js+Tailwind访问不存在页面时出现颜色反转问题

问题描述

我正在使用Next.js(14.2.8版本)和Tailwind CSS(3.4.1版本)开发网站,尚未创建自定义404页面,但访问不存在的页面时,整个页面颜色会反转,而非仅显示404 error,每次触发该场景都会出现此异常。

正常白色背景布局
正常白色背景布局图

404错误时的黑色背景异常布局
404错误时的黑色背景异常布局图

我不确定该问题的产生原因,希望能获得解决指导,同时疑问这是否与Next.js默认404页面的设置或行为有关?


解决指导

1. 问题根源确认

这个异常确实和Next.js默认404页面的内置样式有关。默认404页面会加载Next.js自带的基础样式,其中包含背景色、文本颜色的默认设置,当你的全局Tailwind样式优先级不足以覆盖这些设置时,就会出现颜色反转的冲突。

2. 最直接解决:创建自定义404页面

完全接管404页面的样式是最稳妥的方案:

  • App Router项目:在app目录下创建not-found.tsx文件
  • Pages Router项目:在pages目录下创建404.js文件

示例代码(App Router):

import '@/styles/globals.css'; // 引入你的全局样式文件

export default function NotFound() {
  return (
    <div className="min-h-screen bg-white text-black">
      <div className="container mx-auto py-16 text-center">
        <h1 className="text-5xl font-bold mb-6">404</h1>
        <p className="text-xl mb-8">页面不存在</p>
        <a href="/" className="text-blue-600 hover:underline">返回首页</a>
      </div>
    </div>
  );
}

自定义页面会完全继承你的全局样式,彻底避免默认样式冲突。

3. 临时排查方案(不创建自定义页面)

如果想先排查冲突点,可以检查全局样式文件:

  • 查看html/body标签是否设置了color-scheme属性,比如color-scheme: dark,可能被默认404页面触发
  • 检查是否有@media (prefers-color-scheme: dark)这类暗色模式规则,默认404页面可能意外触发了该规则

内容的提问来源于stack exchange,提问作者Baboyiban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:47:06