Streamlit自定义CSS中font-weight属性不生效,如何修复?
Streamlit自定义CSS中font-weight不生效的解决方法
我为Streamlit Python脚本引入了独立的style.css样式文件,引入代码如下:
with open('style.css') as f: st.markdown(f'<style>{f.read()}</style>', unsafe_allow_html=True)
使用的style.css代码:
div.css-z5fcl1.egzxvld4 { border: 1px solid #5f9ea0; padding: 20px 20px 20px 70px; color: #3a668; font-weight: 500 !important; }
目前边框、内边距和文字颜色的修改都生效了,但font-weight属性没有作用,截图显示目标文本的字体粗细仍保持默认样式。
解决方法:
直接定位文本子元素设置样式
Streamlit容器内的文本样式通常会被更内层的元素(比如p标签、带有stMarkdown类的元素)覆盖,需要把样式直接应用到这些子元素上:/* 对容器内所有子元素生效 */ div.css-z5fcl1.egzxvld4 * { font-weight: 500 !important; } /* 精准定位Markdown文本的p标签 */ div.css-z5fcl1.egzxvld4 p { font-weight: 500 !important; }确认元素的实际类名
Streamlit的组件类名(如css-z5fcl1、egzxvld4)是动态生成的,可能随版本变化。可以用浏览器F12开发者工具定位目标文本的实际元素层级,找到更稳定的选择器。比如如果文本所在元素带有stMarkdown类,可修改为:div.css-z5fcl1.egzxvld4 .stMarkdown { font-weight: 500 !important; }检查字体是否支持对应字重
部分字体可能不支持500这个字重级别,尝试改用bold(对应700)测试:div.css-z5fcl1.egzxvld4 p { font-weight: bold !important; }
内容的提问来源于stack exchange,提问作者Joan Mok
相关产品推荐
相关产品推荐

