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

如何移除Dash Bootstrap导航栏hover边框及解决404页面失效问题

问题解决方案:Dash Bootstrap Components导航栏Hover边框与404页面失效问题

一、移除导航栏Hover时的黑色边框

该黑色边框是Dash Bootstrap Components默认的:hover/:focus样式导致的,通过自定义CSS覆盖即可解决:

方法1:添加全局自定义样式

在app布局中插入html.Style标签,统一覆盖所有导航链接的hover样式:

from dash import html

# 自定义CSS消除hover边框
custom_css = html.Style("""
    .nav-link:hover, .nav-link:focus {
        outline: none !important;
        box-shadow: none !important;
        border-color: transparent !important;
    }
""")

# 整合到布局中
app.layout = html.Div([
    custom_css,
    header,
    dash.page_container
])

方法2:单独设置NavLink样式

如果只需针对单个导航项生效,直接给dbc.NavLink添加style参数:

dbc.NavItem(dbc.NavLink('Home', href='/', style={"border": "none", "boxShadow": "none"})),

二、移除导航栏404项后404页面不生效的解决

Dash Pages的404页面无需在导航栏添加入口,只需完成以下配置即可自动触发:

方案1:注册独立404页面

在pages目录下创建404.py文件,内容如下:

import dash
from dash import html

dash.register_page(
    __name__,
    path="/404",
    title="404 - 页面未找到"
)

layout = html.Div([
    html.H1("404 - 页面未找到"),
    html.P("你访问的页面不存在,请检查路径是否正确。")
])

配置完成后,用户访问不存在的路径时,Dash会自动跳转到该页面。

方案2:设置全局404布局

如果不想单独创建页面文件,可在app初始化后直接配置全局404布局:

app = Dash(__name__, 
           use_pages=True, 
           title='Portfolio Optimization', 
           external_stylesheets=[dbc.themes.SLATE, dbc_css]
           )

# 全局404页面配置
app.not_found_layout = html.Div([
    html.H1("404 - 页面未找到"),
    html.P("抱歉,你访问的页面不存在。")
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:51:20