如何修改Streamlit输入组件的标签字体大小?
修改Streamlit输入组件标签字体大小的方法
为什么之前的方法无效
st.text_input这类输入组件的label参数只支持纯文本,不会解析Markdown语法或HTML代码,所以你直接把带格式的字符串传给label是没用的。
两种可行解决方案
方案1:注入自定义CSS修改样式
通过Streamlit的st.markdown注入CSS,直接覆盖组件标签的默认样式,可全局修改或针对单个组件调整:
全局修改所有文本输入框的标签
import streamlit as st # 注入自定义CSS st.markdown(""" <style> /* 定位所有文本输入框的标签元素 */ div[data-testid="stTextInput"] label { font-size: 20px; /* 可选:添加加粗、颜色等样式 */ font-weight: 600; color: #2c3e50; } </style> """, unsafe_allow_html=True) label = "Enter text here" st.text_input(label)
仅修改指定输入框的标签
给目标组件设置key,通过key精准定位修改:
import streamlit as st st.markdown(""" <style> /* 匹配key为"custom_text_input"的文本输入框标签 */ div[data-testid="stTextInput"][data-key="custom_text_input"] label { font-size: 24px; } </style> """, unsafe_allow_html=True) label = "Enter text here" st.text_input(label, key="custom_text_input")
方案2:隐藏原生标签,自定义带样式的标签
把组件的原生标签设为空,自己用Markdown写带样式的标签放在输入框上方,自由度更高:
import streamlit as st label = "Enter text here" # 自定义样式的标签 st.markdown(f"<p style='font-size:20px; margin-bottom:5px;'>{label}</p>", unsafe_allow_html=True) # 原生标签设为空,避免重复显示 st.text_input("")
内容的提问来源于stack exchange,提问作者cottontail
相关产品推荐
相关产品推荐

