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

如何修改Python Dash Bootstrap Components中AccordionItem的图标颜色

解决Dash Bootstrap Components Accordion图标颜色修改问题

这个Chevron Down图标是Bootstrap Accordion组件通过CSS伪元素生成的,所以你在源码里找不到它的实体标签。可以通过以下两种方式修改颜色:

方法一:内联CSS(针对单个AccordionItem)

在创建dbc.AccordionItem时,给组件添加自定义样式变量,覆盖默认的图标背景图:

dbc.AccordionItem(
    [
        dbc.AccordionBody([
            html.P("Core Plus: 8.09%", id="corePlusI"),
            html.P("Core: 7.57%", id="coreI"),
            html.P("Value-Add: 27.96%", id="valueAddI"),
            html.P("Opportunistisch: 23.97%", id="opportunistischI"),
        ])
    ],
    title="Objektklassen",
    style={
        "--bs-accordion-btn-icon": "url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")",
        "--bs-accordion-btn-active-icon": "url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")"
    }
)

其中%23ffffff是白色十六进制值#ffffff的URL转义写法,分别设置了折叠和展开状态下的图标颜色。

方法二:全局CSS(应用到所有Accordion组件)

如果希望所有Accordion的图标都改为白色,可在项目中添加自定义CSS文件:

  1. 在Dash应用初始化时引入自定义CSS:
import dash
import dash_bootstrap_components as dbc

app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.css.append_css({'external_url': '/assets/custom.css'})
  1. 在项目根目录创建assets文件夹,新建custom.css文件并写入:
.accordion-button::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}

.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:57:52