如何将Streamlit侧边栏菜单所有文本设为纯黑色?
Streamlit侧边栏菜单文本颜色自定义方案
- 直接用自定义CSS强制覆盖
Streamlit侧边栏的菜单项有专属CSS选择器,你可以在主页面(比如app.py)顶部注入以下代码,把未选中的菜单项文本改成纯黑色:
st.markdown(""" <style> /* 给未选中的侧边栏菜单设置纯黑文本 */ div[data-testid="stSidebarNav"] li a:not([aria-selected="true"]) { color: #000000 !important; } /* 要是想调整选中项的样式也可以加下面这段 */ div[data-testid="stSidebarNav"] li a[aria-selected="true"] { background-color: #e0e0e0 !important; color: #000000 !important; } </style> """, unsafe_allow_html=True)
记得把这段代码放在st.set_page_config之后,全局都会生效。
- 检查config.toml的配置是否正确
别光改textColor,得确保配置放在[theme]区块里,而且文件位置要对:- 本地开发时,
config.toml要放在项目根目录的.streamlit文件夹里 - 正确格式示例:
[theme] base="light" textColor="#000000" secondaryBackgroundColor="#f0f2f6" primaryColor="#6c757d"
- 本地开发时,
改完之后一定要重启Streamlit服务,不然新配置不会加载。
- 关闭主题自动对比度调整
Streamlit默认会自动调整文本对比度,可能导致你的颜色设置被覆盖,试试在config.toml里加一行:
[theme] adjustTextColorAutomatically=false
再配合textColor="#000000"一起用,大概率能解决问题。
内容的提问来源于stack exchange,提问作者viniwata1
相关产品推荐
相关产品推荐

